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

Struts2+json plus提交时提示Could not find action or result
      今天做一个页面提交的功能时,用到了Json Plus插件,代码写好了,测试的时候一直都提示Could not find action or result No result defined for action com.ecmanager.action.EcEditAction and result input。以前那几个功能都是这样写的,都没有提示,现在反而却报找不到action或者result,心里很纳闷。调试的时候却能正确的执行类的构造函数,就是没有执行方法。
        后来翻资料说,Action的属性为空的时候,Struts2的默认拦截器会报错,报错的同时会需找input的result。但是我仔细检查了我的Action各个属性,没有存在会为空的现象,但是一想到既然Action的构造函数都已经执行了,却在执行方法的时候提示找不到input result,原因可能就是在解析属性的时候出现了异常,于是在页面中查看html代码,仔细的查看了各个属性的值,在一个隐藏域属性中,值定义的类型是long,可是隐藏域中的value值却是字符型,这就造成了隐藏域转换的时候出现了异常,才导致了Could not find action or result。原来找到了,那解决办法自然就有了...


====================
Dispatcher Could not find action or result
我的问题是
private int action = 0; // action
但是没有get  和 set 方法.

去掉这个action 后问题解决.


======================================
No result defined for action  com.xxxx and result success
这个问题可能因为action的名字使用了Struts的关键字导致的.
原来是UserAction

<action name="user" class="userAction" method="execute">
    <result type="json" />
</action>

报错.
修改Action的名称,配置文件修改成下面后就ok了
<action name="userInfo" class="userInfoAction" method="execute">
    <result type="json" />
</action>