当前位置: 代码迷 >> Java Web开发 >> struts2串行化json的有关问题
  详细解决方案

struts2串行化json的有关问题

热度:666   发布时间:2013-02-25 21:19:22.0
struts2串行化json的问题
我刚刚学习ajax,随便试了下,发现好多疑惑。环境:struts2.2.3+jquery

Action类
Java code
public class AjaxAction extends ActionSupport{        private User user;    private User user2;    private String username;        @Override    public String execute() throws Exception {        user = new User();        user.setUsername(username);        user.setId(1);        user.setPassword("aaaa1");                user2 = new User();        user2.setId(2);        user2.setPassword("22222222222");        user2.setUsername("222");                return SUCCESS;    }和get、set方法

struts.xml
XML code
<result type="json" name="success"></result>


在js里面
JScript code
function clickButton()            {                    var url = "<%=basePath%>ajax/ajax";                var params = {                        username:$("#name").val()                };                $.post(url, params, callbackFun, "json");            }            function callbackFun(data)            {                alert(data);          //1                //alert(data.user.id); //2                //alert(data.id+";"+data.username+";"+data.password);  //3            }

不管我怎么改,注释1都弹出[object Object]
注释2是直接错误
注释3是data.id和data.password都是underfind。data.username值正常

假如,我的action类改为
Java code
public class AjaxAction extends ActionSupport implements ModelDriven<User>{        private User user= new User();        @Override    public String execute() throws Exception {        user.setId(1);        user.setPassword("aaaa1");                return SUCCESS;    }        @Override    public User getModel() {        return user;    }和get、set方法

注释1还是[object Object]
注释2是直接错误
注释3却是正确的显示了。。

这是怎么回事?还是我的代码有什么问题?


------解决方案--------------------------------------------------------
function callbackFun(data){
for(var x in data){
alert( data[x] ); // 看看弹什么
}
}


------解决方案--------------------------------------------------------
JScript code
function callbackFun(data){    for(var x in data){        if( typeof data[x] == 'object' ){            for(var y in data[x]){                alert(data[x][y])            }        }else{            alert(data[x])        }    }}
  相关解决方案