用Struts2框架与jQuery框架实现网页的ajax功能:
作为一个初学者,刚刚接触前端的相关知识,研究了好半天才实现了Struts2+jQuery的ajax功能。下面给出具体代码以及在用时需要注意的问题。
<script type="text/javascript" src="/Struts2Study/js/jquery-1.8.0.js"></script>
<body>
<input id="user" type="text" name="number"/>
<div id="tt">ggggg</div>
<button οnclick="f()">提交</button>
</body>
<script type="text/javascript">
function f(){
$.ajax({
type:"POST",
url:"/Struts2Study/login",
data:$("#user").serializeArray()
}).done(function(data,statusText){
if(data.result=="1"){
$("#tt").html("haha");
}
else{
$("#tt").html("hhhh");
}
}).fail(function(){
alert("error!");
})
}
</script>
在使用jquery框架时,务必先将需要的js文件成功导入进该html页面中,博主刚开始就是将jquery.js导入到该页面的标签写错了,然后弄了半天以为是javascript代码的问题,搞得焦头烂额的。当然这也是新手菜鸟们可能会常犯的错误,应该引起重视。
要实现jquery的ajax功能,使用下面形式的javascript语句:
$.ajax({
type:发送请求的方式,POST或是GET,
url:发送请求的目的地,即请求需要发送给那个对象处理,可以是html、jsp页面,也可以是servlet,
data:发送的请求里面封装的参数,是json格式的
}).done(function(data,statusText){
... //当成功响应了这次请求的回调函数,在成功响应了这次请求之后,执行该函数的内容
}).fail(function(){
... //响应这次请求失败时的回调函数,在响应失败之后,执行该函数的内容
})
Action如下:
public class Action1 extends ActionSupport{
private String number;
private String result;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String execute(){
if(number.equals("1")){
result="1";
return SUCCESS;
}
else{
result="2";
return SUCCESS;
}
}
}
struts.xml中的配置信息如下:
<package name="User" extends="json-default" namespace="">
<action name="login" class="Controller.Action1" method="execute">
<result type="json">
<param name="location">result</param>
</result>
</action>
</package>
在ajax函数的done里面的function(data,statusText)中,data即是响应回给该页面的数据,data.result则是Action中的result属性。
这一套是jquery中最为基本的ajax技术的实现方式,以这套实现方式为模板,添枝加叶,就能在struts2+jquery框架下实现更多复杂的交互操作。