涉及到的json包(常规的环境jar包就不提了):
1.json-lib-2.1-jdk15.jar
2.struts2-json-plugin-2.2.3.jar
3.ezmorph-1.0.3.jar
前台代码概要:
<a href="#" id="test_ajax">测试</a> $("#test_ajax").click(function(){ $.ajax({ url:'login-testAjax.do', data:'total=12&page=5', type:'post', success: function(json){ alert(json.userJson.userName); //获得对象属性的方 alert(json.total);//获得对象的方法 alert(JSON.stringify(json)); }, error:function(){ } }) });
后台代码 :
这里有几点关键注意一下:public class LoginAction extends BaseAction { private static final long serialVersionUID = 4131734738322791161L; private int total=0; private JSONObject userJson; private ILoginService loginService; public String testAjax(){ BasicUser user = loginService.getTestUser(); userJson = JSONObject.fromObject(user); //BasicUser对象包括 userName password return SUCCESS; } public void setUserJson(BasicUser userJson) { this.userJson = JSONObject.fromObject(userJson); } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public JSONObject getUserJson() { return userJson; } public void setLoginService(ILoginService loginService) { this.loginService = loginService; } }
1.在返回的时候,json中包括所有的action中的有get方法的变量。因此,我们service方法不要写get方法。
2.在注意useJson对象的set方法
如下写法,无法直接获得对象的
public void setUserJson(JSONObject userJson) { this.userJson = userJson; }
需要改成:
public void setUserJson(BasicUser userJson) { this.userJson = JSONObject.fromObject(userJson); }
至于理由,目前还没想太明白,知道朋友希望能补充一下。
struts2 + spring +jquery实现AJAX (使用了struts2 的json插件)
最新推荐文章于 2024-08-31 20:02:26 发布