每当使用struts2动态方法调用时,总是出现错误:There is no Action mapped for namespace [/user] and action name [user!add]...

本文解决了在使用Struts2.3.15.2版本时遇到的动态方法调用问题。作者发现新版本默认关闭了动态方法调用功能,通过在struts.properties或struts.xml中设置struts.enable.DynamicMethodInvocation为true解决了该问题。

每当使用struts2动态方法调用时,总是出现错误:There is no Action mapped for namespace [/user] and action name [user!add] ,这个错误是我在使用最新的struts2.3.15.2版本时出现的,原来使用struts2.1.6从没有出现过这个问题,查了快两个小时的资料,又是struts的docs,又是问google老师,最后找到一篇文章,人家使用的是2.1.6,但是人家有一句话叫:“注意:要使用动态方法调用,必须设置Struts2允许动态方法调用,通过设置struts.enable.DynamicMethodInvocation常量来完成,该常量属性的默认值是true。”,我就纳闷了,我从来没有定义过嘛,查了一下default.properties文件(当然是2.1.6的啦),人家确实写的是true,这也难怪我当时从来没有注意过这个东东,

  问题来了,为什么2.1.6版本可以正常使用动态方法调用,而当我换成新的2.3.15.2时他就总是报错呢?!怀着探索的心情悄悄地查了一下2.3.15.2……我勒个去了!!!一个大大的false摆在我面前!!!我就凌乱了!!两个小时啊!!为啥新版本默认把动态方法调用常量的默认值改成了false呢?!!难道动态调用很不受欢迎吗?!估计也怪我,没有找着人家的文档中的注释(有木有呢?……不去查了,桑心了……)

  好吧,答案很明显了,若使用最新的struts,需添加struts.properties文件,在其中添加struts.enable.DynamicMethodInvocation = true,

或者在struts.xml中添加<constant name="struts.enable.DynamicMethodInvocation" value="true"/>,均可把这个bug解决……唉,多看文档还是有好处的啊……

转载于:https://www.cnblogs.com/mecca/p/3463399.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值