日期:2014-05-16  浏览次数:20841 次

org.apache.struts2.json.JSONException:

org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException

?

解决:

1.检查 package继承json-default。 action结果类型为json。

2. 去掉Service或者DAO得get方法,我用此方法居然通过了.

?

?

?

?

?

个人签名

-------------------------------------

微尘的世界

图盾 淘宝保护 保护图片 图片防盗

1 楼 jsjxieyang 2010-12-20  
还是不行啊
2 楼 yumyy 2011-01-16  
谢谢,我把service中的以get开头的方法名改了,果真好了...
3 楼 jay61439476 2012-02-01  
多谢  我去掉 Service的get方法就好了  LZ知道为什么吗?
4 楼 tyaccp_guojian 2012-02-10  
问题应该出在struts2的框架里面,对于深层嵌套的对象,struts2就不能完美的格式化成JSON格式的数据了,至于为什么去掉get方法以后就可以,那是因为struts2在格式化的时候会将你的get方法后面的一段当作一个字段,比如getName(),他就会在类中找name字段,然后格式化成{name:"xxxxx"},这时如果在action里面有getUser()方法,struts2就会在action里面找user对象,然后格式化,这时就会发生在一个action对象中嵌套一个user对象,struts2就不能很好的格式化,所以就会有这个错,也可以在get方法上加注解:@JSON(serialize = false),这样可以告诉struts2忽略这个方法。我还没有找到解决的方法,找到的告诉一声,谢谢!!QQ:240035336
5 楼 Menuz 2012-06-04  
4楼,解释的很清楚,受教了。。
6 楼 sjhnanwang 2012-06-15  
tyaccp_guojian 写道
问题应该出在struts2的框架里面,对于深层嵌套的对象,struts2就不能完美的格式化成JSON格式的数据了,至于为什么去掉get方法以后就可以,那是因为struts2在格式化的时候会将你的get方法后面的一段当作一个字段,比如getName(),他就会在类中找name字段,然后格式化成{name:"xxxxx"},这时如果在action里面有getUser()方法,struts2就会在action里面找user对象,然后格式化,这时就会发生在一个action对象中嵌套一个user对象,struts2就不能很好的格式化,所以就会有这个错,也可以在get方法上加注解:@JSON(serialize = false),这样可以告诉struts2忽略这个方法。我还没有找到解决的方法,找到的告诉一声,谢谢!!QQ:240035336

谢谢