<param name="root">XX</param>;谁能帮我解释一下什么意思

解决方案 »

  1.   

    http://www.mkyong.com/struts2/struts-2-param-tag-example/
      

  2.   

    这是常用配置,
    xx表示返回的json对象,root表示返回对象的层级为根部,,因为一般对象可以直接获得更多的对象,比如xx.getParent()  程序会默认以为你要返回的json类型为该对象下的所有属性及对象,以及对象的对象,对象的属性,,,一直下去。
    所以如果不指定name="root" 这就会导致死循环,内存溢出了
      

  3.   

    解释得很好,懂了。
    不过测试的时候还是碰到了一个问题,
    以下是JSP页面的具体访问代码,
                      $.getJSON("user/user!returnUser",function(data){ 
             $("#result").append("id:"+data.user.id+" ")
                             .append("name:"+data.user.name);
           });
    action类
                     private User user;
                     //省略getter(),setter()
                   public String returnUser() {
    user = new User();
    user.setId(1);
    user.setName("user");
    System.out.println(user.getName());
    return "user";
    }struts.xml
                    <result name="user" type="json">
           <param name="root">user</param>
    </result>在struts.xml加上<param name="root">user</param>这一句,Jsp页面却不能正常显示了,按理说应该也能正常显示的啊
      

  4.   

    楼主的 <action>配置的是extends="json-default" 吗??
    还有 项目lib中有加 struts-json-plugin.jar吗???
      

  5.   

    配置什么的都是对的,没问题,都测试通过
    <result name="user" type="json">
           <param name="root">user</param>
    </result>
    就是加入<param name="root">user</param>这句后,前台就访问不到user的属性了。没加就能访问到
      

  6.   

    这是返回的是json格式,不是user对象,肯定访问不到user的属性。
      

  7.   

    [align=left]                  $.getJSON("user/user!returnUser",function(data){ 
             $("#result").append("id:"+data.user.id+" ")
                             .append("name:"+data.user.name);
            });[/align]
    直接$("#result").append("id: " + data.id + "&nbsp;").append("name: " + data.name);就可以了,因为现在的user被转为 json 字符串了,你用火狐浏览器的firebug就可以看见这个json字符串。