There is no Action mapped for namespace / and action namen异常解决方法

     本来想用DMI的方式调用,如 registerAction!add,就能调用registerAction里面的add方法,但说来愚笨,这一个小问题说得很明白,就是找不到相就的Action或是相应的方法,但让我困扰一好几个小时,我的struts.xml中的action配置如下:
<action name="registerAction" class="registerAction"> 
           <result name="success">/success.jsp</result>
           <result name="fail">/fail.jsp</result>
        </action>


这个不会有什么问题的,这里的 class="registerAction"是说我的Action是由Spring来管理的,如果不是这样话,把Class配置成相对应的类的就可以了。
但是运行会出现异常,说是找不到相应的Action或是方法,小改下,我指定方法还不成吗?

<action name="*" class="registerAction" method="{1}"> 
           <result name="success">/success.jsp</result>
           <result name="fail">/fail.jsp</result>
        </action>

再访问呢,没有问题,好生怪异了,现在问题应该就在struts.xml中的配置了,在一个不经意的角落里看到要一句:

<constant name="struts.enable.DynamicMethodInvocation" value="false" />

郁闷,原来Copy配置的时候,把这句没有注意,显式的关闭了MDI,所以呢,把这句给去了,改去原来的配置,再访问,好了,世界清静了!

后记:这种问题通常是Struts.xml的配置问题,检查这样的问题,首先看是否关了DMI,二来,看下Action里在配置会不会有相同名称的,可能会冲突。

你可能感兴趣的:(spring,jsp,xml,struts,配置管理)