struts2 和jquery实现ajax功能 传递json数据
首先看下我使用的jar包
这该死的jar包可是闹腾坏了
<!--StartFragment -->
<script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/json.js"></script>
<script type="text/javascript">
//实体类赋值
//function entity(param1,param2){
// this.param1=param1;
// this.param2=param2;
//}
//将json数据传入action
//function test(){
// alert(11);
// var JSONString=JSON.stringify(new entity("111","222"));
// alert(111);
// $.get("getJSON.action","jsonString="+JSONString,function(data){
// callBackFunction(data)
// });
//}
function test(){
$.get("getJSON.action",function(data){
callBackFunction(data)
});
}
function callBackFunction(dataParam){
var showValue="";
var jsonArrayObject=JSON.parse(dataParam);
for(var i=0;i<jsonArrayObject.length;i++){
showValue+=jsonArrayObject[i].name+"--"+jsonArrayObject[i].pass;
}
alert(showValue);
}
</script>
下面来看看action中如何写
private String jsonString;
private List list = new ArrayList();
private List<Test> testList = new ArrayList<Test>();
记得写setter 和getter方法
// 获取页面传过来的json数据
// System.out.println("===="+jsonString);
// JSONObject jjj=JSONObject.fromObject(jsonString);
// System.out.println("param1"+jjj.get("param1"));
// System.out.println("param2"+jjj.get("param2"));
// ServletActionContext.getResponse().setContentType("text/html");
// ServletActionContext.getResponse().setCharacterEncoding("utf-8");
// ServletActionContext.getResponse().getWriter().print("大家好");
// ServletActionContext.getResponse().getWriter().flush();
// ServletActionContext.getResponse().getWriter().close();
// 返回list中为string的json
// list.add("撒旦发生大发");
// list.add("点点滴滴 ");
// list.add("生生死死");
// list.add("万维网");
// JSONArray jsonArray=JSONArray.fromObject(list);
// ServletActionContext.getResponse().setContentType("text/html");
// ServletActionContext.getResponse().setCharacterEncoding("utf-8");
// ServletActionContext.getResponse().getWriter().print(jsonArray.toString());
// ServletActionContext.getResponse().getWriter().flush();
// ServletActionContext.getResponse().getWriter().close();
Test test = new Test();
test.setName("撒地方");
test.setPass("撒地方");
testList.add(test);
JSONArray jsonArray = JSONArray.fromObject(testList);
ServletActionContext.getResponse().setContentType("text/html");
ServletActionContext.getResponse().setCharacterEncoding("utf-8");
ServletActionContext.getResponse().getWriter().print(
jsonArray.toString());
ServletActionContext.getResponse().getWriter().flush();
ServletActionContext.getResponse().getWriter().close();
虽然看起来前事很麻烦,其实写起来挺简单 这只是其中一种比较简单的方法