正确使用动态方法

摘要:在使用动态方法时,容易导致两个错误,一个是动态方法调用权限没开启,二是没有将访问的方法注册到struts中(针对struts2.5之后)。

1.如果没开启动态方法调用权限,则会报如下错误:

Struts has detected an unhandled exception:
Messages: There is no Action mapped for namespace [/] and action name [userAction!update] associated with context path
[/StrutsDemo2].

如果struts中设置为

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

,所以将它改为

<constant name="struts.enable.DynamicMethodInvocation" value="true">constant>

2.如果方法没有注册方法到允许访问集合中,会报另一个错:
  Method add for action userAction is not allowed!
这里需要添加方法的访问权限,
最后struts.xml中的配置为

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

    <package name="user" extends="struts-default">
      
      <global-allowed-methods>add,updateglobal-allowed-methods>
      <action name="userAction" class="com.stru2.action.UserAction">
        <result name="add">user_add.jspresult>
        <result name="update">user_update.jspresult>
      action>
    package>
struts>

你可能感兴趣的:(java)