Struts2.5使用通配符的方式实现动态方法调用报错
2016-11-24 22:39
621 查看
在Struts2.5使用通配符的方式实现动态方法调用时报错,困扰了好久。。。
代码如下
<package name="default" extends="struts-default" namespace="/">
</package>
<package name="users" namespace="/users" extends="default">
<action name="*_*" class="action.{1}Action" method="{2}">
<result name="login_success">/users/Users_login_success.jsp</result>
<result name="login_failure">/users/Users_login.jsp</result>
</action>
</package>
报错信息如下:There is no Action mapped for namespace [/users] and action name [Users_login] associated with context
path [/Hibernate-struts-student].
可以确定的是,我的xml配置没有问题
在之前的版本,动态使用方法时,要把Struts.xml中添加<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
但是在2.5版本,这个方法行不通。原来在struts2.5 中为了增加安全性,在 struts.xml 添加了这么个属性:<allow-methods>方法名(可多个)</allowmethods>,添加完成之后就可以正常运行通配符的配置了。
eg:<allowed-methods>add,addUI,list</allowed-methods>
果然在修改之后可以了,修改后的文件:
<package name="users" namespace="/users" extends="default">
<action name="*_*" class="action.{1}Action" method="{2}">
<result name="login_success">/users/Users_login_success.jsp</result>
<result name="login_failure">/users/Users_login.jsp</result>
<allowed-methods>login</allowed-methods>
</action>
</package>
代码如下
<package name="default" extends="struts-default" namespace="/">
</package>
<package name="users" namespace="/users" extends="default">
<action name="*_*" class="action.{1}Action" method="{2}">
<result name="login_success">/users/Users_login_success.jsp</result>
<result name="login_failure">/users/Users_login.jsp</result>
</action>
</package>
报错信息如下:There is no Action mapped for namespace [/users] and action name [Users_login] associated with context
path [/Hibernate-struts-student].
可以确定的是,我的xml配置没有问题
在之前的版本,动态使用方法时,要把Struts.xml中添加<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
但是在2.5版本,这个方法行不通。原来在struts2.5 中为了增加安全性,在 struts.xml 添加了这么个属性:<allow-methods>方法名(可多个)</allowmethods>,添加完成之后就可以正常运行通配符的配置了。
eg:<allowed-methods>add,addUI,list</allowed-methods>
果然在修改之后可以了,修改后的文件:
<package name="users" namespace="/users" extends="default">
<action name="*_*" class="action.{1}Action" method="{2}">
<result name="login_success">/users/Users_login_success.jsp</result>
<result name="login_failure">/users/Users_login.jsp</result>
<allowed-methods>login</allowed-methods>
</action>
</package>
相关文章推荐
- Struts2.5使用通配符的方式实现动态方法调用报错
- struts2.5 使用感叹号和通配符实现动态方法调用无效的问题及解决!
- 解决Struts2.5不能使用通配符方式动态方法调用
- struts2.5 使用感叹号和通配符实现动态方法调用无效的问题及解决!
- 动态方法调用和使用通配符实现类似struts1.x的dispatchAction功能
- Struts2.5使用感叹号实现动态方法调用无效的解决办法
- Struts2.5动态方法调用action和使用通配符访问action
- struts--动态方法调用和使用通配符(8)
- 升级Struts2.5后使用DMI动态方法调用遇到问题
- struts2.5动态方法调用不能使用问题
- struts中3种情况通配符的使用方法 及 动态方法调用
- Struts2 用通配符方式动态调用方法
- 升级Struts2.5后使用DMI动态方法调用遇到问题
- struts中动态方法调用使用通配符
- struts2.5+框架使用通配符与动态方法
- struts的三种动态方法调用方式,dmi,通配符
- [Struts2 框架学习] Struts2.5 通配符动态方法调用问题
- struts2.5感叹号和通配符实现动态方法
- struts2——(8)(①3种情况通配符的使用方法②动态方法调用 )
- JSP+jquery使用ajax方式调用json的实现方法