日期:2014-05-18  浏览次数:20766 次

【ajax访问struts2,出现的问题】
   为什么ajax有进入对应的action的方法中,但是返回回来的却进入error方法。这和我action中定义了很多变量,这些变量都有get、set方法有关么?
Ajax

------解决方案--------------------

------解决方案--------------------
首先,LZ应该说明你的struts是用来struts-json插件来做json返回,还是自己用的json工具包使用response返回的。
其次,我姑且当LZ用的是struts-json,
1、返回参数json序列化是根据action里面的getter方法来反射调用的,如果你有想序列化的参数,一定要定义一个getter,有没这个全局变量,fucking care
2、getter对应的类型必须实现serialize接口,如果你的service层调用了getter且没有实现序列化接口(即JSON插件无法序列化该实例),就一定会报错
3、配置中action所在的package一般应该是继承json-default,当然了,如果你愿意默认实现json拦截器的话,继承什么都无所谓了