Struts2中Action动态调用DMI出现的一个问题

      在学习struts.xml文件关键元素分析的时候,在测试Action的动态调用例子时,在开发者界面出现了一个没有映射到命名空间的错误,搜索了几篇文章,大多数都是对struts.xml文件命名是否出错,路径是否正确等这些的确认(比如struts.xml文件要在src目录下,还有一个是更改eclipse web 项目默认编译输出路径到WEB-INF下),但是发现自己的项目工程中并未出现这种错误。

      最后发现,我用的struts2版本为2.3.34,在Struts2.3.x或更高的某些版本时出现There is no Action mapped for namespace [/user] and action name [user!add] associated with context path错误,原因有两个:一是DMI可能导致安全问题;二是DMI与通配符方法功能有重叠,因此该版本Struts2默认关闭DMI。

      那解决方法只需要在struts.xml中加一句<constant name="struts.enable.DynamicMethodInvocation" value="true" /> 来打开动态方法调用。

      动态方法调用官方推荐的做法是,使用通配符的形式。不要使用actionName!methodName的方式。


    这里感谢一下hrhacmer的总结文章:http://blog.csdn.net/roney_win/article/details/46575205

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值