struts2 + spring +jquery实现AJAX (使用了struts2 的json插件)

涉及到的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);
    }

至于理由,目前还没想太明白,知道朋友希望能补充一下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值