struts.xml配置 Json返回值勤 <param name="root">XX</param>不理解是什么意思
<param name="root">XX</param>;谁能帮我解释一下什么意思 --------------------编程问答-------------------- http://www.mkyong.com/struts2/struts-2-param-tag-example/ --------------------编程问答-------------------- 这是常用配置,xx表示返回的json对象,root表示返回对象的层级为根部,,因为一般对象可以直接获得更多的对象,比如xx.getParent() 程序会默认以为你要返回的json类型为该对象下的所有属性及对象,以及对象的对象,对象的属性,,,一直下去。
所以如果不指定name="root" 这就会导致死循环,内存溢出了。。。 --------------------编程问答--------------------
解释得很好,懂了。
不过测试的时候还是碰到了一个问题,
以下是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页面却不能正常显示了,按理说应该也能正常显示的啊 --------------------编程问答-------------------- 楼主的 <action>配置的是extends="json-default" 吗??
还有 项目lib中有加 struts-json-plugin.jar吗??? --------------------编程问答--------------------
配置什么的都是对的,没问题,都测试通过
<result name="user" type="json">
<param name="root">user</param>
</result>
就是加入<param name="root">user</param>这句后,前台就访问不到user的属性了。没加就能访问到 --------------------编程问答--------------------
这是返回的是json格式,不是user对象,肯定访问不到user的属性。 --------------------编程问答-------------------- [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 + " ").append("name: " + data.name);就可以了,因为现在的user被转为 json 字符串了,你用火狐浏览器的firebug就可以看见这个json字符串。
补充:Java , Java EE