一、准备工作
①ajax使用Jquery:jquery-min.js
②struts2与json的依赖包:struts2-json-plugin-xxx.jar
二、jsp页面内容姓名:<input type="text" name="name" id="nameId"/><label></label>
三、javascript的内容
<script type="text/javascript">
$(function(){
var value = $("#nameId").val(); //id选择器
$("#nameId").blur(function(){
alert(value);
$.ajax({ //javascript中双引号{}表示对象,ajax共有7个参数。
url:"/jquerytest/ajaxAction_get",//要求请求的服务器的url
data:{name:value},//这是一个对象,它表示请求参数,两个参数:method=ajax&value=xxx,
//这两个参数服务器端可以通过request.getParameter()来获取。
async:true, //是否是异步请求,默认为true
cache:false, //是否在浏览器端缓存
type:"POST", //请求方式
dataType:"json", //服务器返回的结果类型,json是javascript中的对象和数组
success:function(result){ //这个结果会在服务器返回成功时调用,参数result就是返回的结果。
$("label").text(result.name);
}
});
});
});
</script>
下面分情况介绍:
1.用json时
1)在action中
private String result;
private String name;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String get() throws Exception {
if (name.equals("swj")) {
result = "{\"name\":\"好人\"}";
}else{
result = "{\"name\":\"坏人\"}";
}
return SUCCESS;
2)在xml中
<package name="ajax" namespace="/" extends="json-default">
<action name="ajaxAction_*" class="cn.songwenju.ajax.AjaxAction" method="{1}">
<result type="json"></result>
</action>
</package>
2.用response/request时
1)在action中
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String name = request.getParameter("val");
System.out.println("AjaxAction");
if (name.equals("swj")) {
String str = "{\"name\":\"好人\"}";
response.getWriter().print(str);
}else{
String str = "{\"name\":\"坏人\"}";
response.getWriter().print(str);
}
2)在xml中
<package name="ajax" namespace="/" extends="struts-default">
<action name="ajaxAction_*" class="cn.songwenju.ajax.AjaxAction" method="{1}">
</action>
</package>