No result defined for action XXX and result XXX的问题在真相大白

最近在使用struts2的时候出现了一个莫名其妙的问题。

我的struts.xml配置的好好的,如下

 

<action name="register" class="com.lifewool.action.RegisterAction">

<result name="success">success.jsp</result>

<result name="input">index.jsp</result>

</action>

结果访问他的时候缺莫名其妙的报出

 

 

No result defined for action com.lifewool.action.RegisterAction and result success

 

 

真是百思不得其解。

最后通过多方查证是Struts2-Convention-Plugin.jar这个包引起的。

这个包是实现Struts零配置功能的。他会扫描你的所有action、actions、struts 、struts包下含有execute方法的类。并根据其类名建立xxx.action映射。这时候当你访问XXX.action时系统会首先调用零配置方法配置的action,而这时候你又没有使用注解配置其result。当然就报找不到no result啦。 

 

结论就是如果你既用了XML配置和零配置。零配置的各种信息会覆盖XML的。

解决办法。1、如果你的action类名是XXXAction 请不要在XML配置中设置其action name属性为XXX

               2、使用零配置

              3、去掉Struts2-Convention-Pluginx.xx.jar这个包

 


 

 

你可能感兴趣的:(action)