struts2返回JSON的几种方式

struts2要返回JSON,需要在Action中定义该变量,如data1,然后定义该变量的get、set方法。

第一种方式

将Action中定义了get方法的变量全部返回,注意package必须extends= "json-default",对应的struts.xml如下:


    
        
    

testAction如下:

private Map dataMap;
public String initData() throws JSONException{
    dataMap = new HashMap();  
        User user = new User();  
        user.setUname("张三");  
        user.setUpassword("123");  
        dataMap.put("user", user);  
        // 放入一个是否操作成功的标识  
        dataMap.put("success", true);
        return "dataMap";       
}
public Map getDataMap() {  
        return dataMap;  
}

前端的js请求代码如下:

$("#b1").click(function(){
    $.post({
        url:'dataMap',
        data:"{}",
        datatype:'json',
        success:function(data){
            console.log(data);
        }
    })
})

这种方法不好的地方是会将Action中所有具有get方法的变量都返回回去,比如在testAction中又定义了变量data2,如果想不返回data2,则需要给getData2加上注解

//设置data2属性不作为json的内容返回 
@JSON(serialize=false)  
    public String getData2() {  
        return data2;  
    }

第二种方式

如果想根据不同的请求返回相应的值,使用另一种方法,struts.xml如下

  
            
            dataMap  
          

只会返回变量中定义的变量

你可能感兴趣的:(struts2返回JSON的几种方式)