この記事では、SSH+Jquery+Ajax の統合に基づいて部分更新を実現する方法を紹介します。興味のある友人は、この記事を一緒に読んでください。最近 SSH2 (Struts2+Spring+Hibernate) の統合を学習した後、試し始めました。ログイン インターフェイスを作成する場合、struts2 を使用してページにジャンプするだけでは、ページの効果があまり良くなく、部分的な更新 (つまり、非同期送信の検証) を実行することもできないことがわかりました。
そこで、インターネットで解決策を探し始めました。隠し iframe を使用することで効果が得られるという意見もありましたが、それは面倒で非現実的であると常に感じていました。後で先生に尋ねたところ、ajax を使用すると目的の効果が得られると聞きました。インターネット上には ajax の例がたくさんありますが、欠けているのは SSH2 (統合) と ajax (ajax は を使用します) の統合です。 jQuery フレームワーク )。
希望する効果について教えてください:
ログインページで送信をクリックすると、バックグラウンド検証が実行されます。
検証が成功した場合は、index.Jspにジャンプします。
検証が失敗した場合は、jQueryスクリプトが実行されます。このログイン ページで実行してユーザーにプロンプトを表示します。
必要なパッケージ:
SSH2 で使用されるパッケージに加えて、struts2 の次のパッケージも必要です:
commons-beanutils-1.8.0.jar
commons-collections -3.1.jarcommons-fileupload-1.3.1.jar
commons-io-2.2.jar
commons-lang-2.4.jar
commons-lang3-3.1.jar
commons-logging-1.1.3.jar
ezmorph -1.0.6.jar
freemark-2.3.19.jar
json-lib-2.3-jdk15.jar
ognl-3.0.6.jar
struts2-core-2.3.16.3.jar
struts2-json-plugin-2.3 .16.3.jar
xwork-core-2.3.16.3.jar
それでは、コードの投稿を始めましょう:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8" />
<title>会员登陆</title>
<!-- 必须添加jQuery 否则ajax将不启用。-->
<script type="text/javascript"src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#button").click (function(){
varuser =$("#User").val();
varpassWord =$("#PassWord").val();
$.ajax({
//这里的需要Struts.xml的<action/>的name属性一致。
url:‘login.action‘,
//提交类型
type:‘POST‘,
//提交数据给Action传入数据
data:{‘User‘:user,‘PassWord‘:passWord},
//返回的数据类型
dataType:‘json‘,
//成功是调用的方法
success:function(data){
//获取Action返回的数据用 data.Action中的属性名 获取
if(data.result=="false")
{
alert("账号密码错误");
}elseif(data.result=="true"){
//进行页面跳转,因为ajax我们的Action只返回数据,不在进行跳转了...
location.href = "index.jsp";
}
}
});
});
});
</script>
</head>
<body>
パスワード:
<input id="button" type="button"value="提交" /> </body> </html>
publicclass LoginAction extends ActionSupport {
//使用@Resource注解注入条件属性名与 ref要一致才可
@Resource
FUserService fUserServiceImp;
@Resource
FUser fUser;
private String User;
private String PassWord;
private String result;
public String getResult() {
returnresult;
}
publicvoid setUser (String User) {
this.User = User;
}
publicvoid setPassWord(String PassWord) {
this.PassWord = PassWord;
}
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
//获取ajax传过来的数据直接使用前台的属性名即可获取。
fUser.setUserEmail(User);
fUser.setUserPassWord(PassWord);
if(fUserServiceImp.CheckUser(fUser)!=null){
//返回给ajax的数据
this.result = "true";
}else{
this.result = "false";
}
return"success";
}
}
<?xml version="1.0"encoding="UTF-8"?>
<struts>
<!—这是我们配置SSH时配置Struts的package -->
<package name="Struts" extends="struts-default">
<action name="login"class="loginAction">
</action>
</package>
<!—为了让ajax可以调用Spring中的Action 配置ajax的package -->
<package name="ajax_json" extends="json-default">
<!—本处的id就是ajax url的值,class引用了Spring 配置Action的id-->
<action name="login" class="loginAction">
<result name="success" type="json"/>
</action>
</package>
</struts>
関連記事:
AJAXパラメータを構築してフォーム要素をJSONに変換する Spring MVC環境に実装されたJSON形式データに対するAjax非同期リクエスト ブラウザの傍受を防ぐための新しいフォームを開くajaxコールバック 効果的な方法_ AJAX 関連以上がSSH+Jquery+Ajax フレームワークの統合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。