struts2 配置通配符时方法名上出错解决办法

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>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值