struts2配置时一直报NoSuchMethodException,后来网上查了相关资料,struts2动态调用action方法默认是关闭的,于是在struts.xml中设置<constant name="struts.enable.DynamicMethodInvocation" value="true" /> ,还是抛NoSuchMethodException。用通配符调用也是一样。
后来无意中在网上看到struts中action的方法都是无参数的,豁然开朗,原因是我在action中自定义的方法中加入了参数,所以struts在匹配方法时忽略了该方法,目前暂时不清楚struts为什么会忽略带参数的方法。不过如果要传参,还是使用struts提供的那几种方法,毕竟这是struts的方便之处。
另外,官方推荐使用DMI通配符方式动态调用action中方法,不推荐使用"action!方法名" 动态调用,例如:login!register.action