JQuery,AJAX,Struts2传送JSON数据 。示例说明:整合Struts2的项目中,使用JQuery或AJAX传送JSON数据,实现页面无刷新更新数据。
环境:Struts-2.3.4 JQuery-1.8.0
其他说明:要传送JSON数据,另外需要几个Jar文件,拿我使用Struts2.3.4来说,要在struts2-blank的基础上额外导入的Jar文件是commons-logging-1.1.1.jar,json-lib-2.3-jdk15.jar,struts2-json-plugin-2.3.4.jar。另外,在这个小例子中,也处理了中文乱码问题。
代码:
HTML:
action
JQuery:
$(“#btn”).click(function() {
alert(“start – lssrc”);
//AJAX方式
$.ajax({
type:”GET”,
url:”getJSON.action”,
data:”name=”+encodeURI(encodeURI(“蓝海魔方”)),
//需要两次转码,Action接受时也需要一次转码.将在Action注明
dataType:”json”,
success:function(data) {
$(“#rdiv”).html(“lssrc返回的数据:” + data.dateJSON);
}
});
//JQuery方式
//中文需要一次转码,Action接受时也需要一次转码.将在Action注明
/*
$.get(“getJSON.action”, {name:encodeURI(“蓝海魔方”)}, function(data){
$(“#rdiv”).html(“返回的数据:” + data.dateJSON);
}, “json”);
*/
});
Struts2的配置文件struts.xml:
/p>
“-//Apache Software Foundation//DTD Struts Configuration 2.3//EN”
“http://struts.apache.org/dtds/struts-2.3.dtd”>
/error.jsp
Action:
package com.lssrc;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String dateJSON;
private String name;
@Override
public String execute() throws Exception {
//这里对接受的数据进行一次转码.解决中文乱码问题
this.name = java.net.URLDecoder.decode(name,”UTF-8″);
System.out.println(“从客户端接受到的数据 : ” + name);
dateJSON = “[{name:'lssrc',age:1},{name:'蓝海魔方',age:2}]“;
return SUCCESS;
}
public String getDateJSON() {
return dateJSON;
}
public void setDateJSON(String dateJSON) {
this.dateJSON = dateJSON;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
如有其他问题,可以给我留言。共同学习!!!