2.3 2.4的struts2 在配置通配符的时候使用method="{2}"这个写法是没有问题的
xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 是否启用开发模式 -->
<constant name="struts.devMode" value="true" />
<!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
<constant name="struts.i18n.reload" value="true" />
<package name="user" namespace="/users" extends="struts-default" >
<action name="*_*" class="action.{1}Action" method="{2}">
<result name="login_success">/users/Users_login_success.jsp</result>
</action>
</package >
</struts>
但是在2.5的版本之后 版本取得方法的时候会先检验方法的可用性这样写就会报 com.opensymphony.xwork2.config.ConfigurationException:There is no Action mapped for namespace [/命名空间] and action name [提交的action] associated with context path [/项目名称]. - [unknown location] 这个时候可以用下面两种中的任意一种方法处理:
第一种在action标签内添加 <allowed-methods>方法1,方法2,方法3</allowed-methods> 方法1,方法2,方法3为你的action内的方法
xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<!-- 是否启用开发模式 -->
<constant name="struts.devMode" value="true" />
<!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
<constant name="struts.i18n.reload" value="true" />
<package name="user" namespace="/users" extends="struts-default" >
<action name="*_*" class="action.{1}Action" method="{2}">
<result name="login_success">/users/Users_login_success.jsp</result>
<allowed-methods>方法1,方法2,方法3</allowed-methods>
</action>
</package >
</struts>
第二种在package标签上添加 strict-method-invocation="false"即可
xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<!-- 是否启用开发模式 -->
<constant name="struts.devMode" value="true" />
<!-- 每次HTTP请求系统都重新加载资源文件,有助于开发 -->
<constant name="struts.i18n.reload" value="true" />
<package name="user" namespace="/users" extends="struts-default" strict-method-invocation="false">
<action name="*_*" class="action.{1}Action" method="{2}">
<result name="login_success">/users/Users_login_success.jsp</result>
</action>
</package >
</struts>