用struts的json插件给前台传送json对象时,报错 NoSuchMethodException : pojo.getHibernateLazyInitializer()
hibernate3.2之前的版本的确存在这个问题,官方在3.2版本就已经解决。
我用的是hibernate3.6,所以不是jar包的问题,查找资料后发现是pojo级联导致该错误。
例如:
//pojo
public class Foo{
private Goo goo;
// getter & setter
}
public class Goo{
....
}
在action中有一个foo 属性
把foo做为json对象传到前台
做法:在struts.xml中配置
<action name="actionName" class="....">
<result type="json">
<param name="root">foo</param>
</result>
</action>
这样配置,前台能够获取foo,但是会报如上错误
解决方法:
在struts.xml中这样写:
<action name="actionName" class="....">
<result type="json">
<param name="root">foo</param>
<!-- 把goo排除掉 -->
<param name="excludeProperties">.*goo</param>
</result>
</action>
本文详细介绍了在使用Struts的JSON插件将POJO对象转换为JSON并传递给前台时遇到的NoSuchMethodException问题,通过分析原因发现是由于POJO级联导致。提供了解决方案,在Struts XML配置中排除引起错误的属性,成功解决了问题。
668

被折叠的 条评论
为什么被折叠?



