在今天整合SSH项目中,使用action的通配符方式跳转结果就开始报404,大概信息是这样
2019-01-12 18:15:21,435 INFO [http-apr-80-exec-3] config.ConfigurationManager (ConfigurationManager.java:212) - Detected container provider [Struts XML configuration provider (struts.xml)] needs to be reloaded. Reloading all providers.
2019-01-12 18:15:22,999 WARN [http-apr-80-exec-7] dispatcher.Dispatcher (Dispatcher.java:611) - Could not find action or result: /account_add.action?
com.opensymphony.xwork2.config.ConfigurationException: There is no Action mapped for namespace [/] and action name [account_add] associated with context path [].
一开始以为是命名空间的问题,然后又觉得是form表单上的地址写错了,花了半小时时间终于解决了这个问题。
原因在于,Struts2 在2.5以上版本推出了新特性,使用通配符后需要在action中加上
<allowed-methods>这里填入方法</allowed-methods>
填入action类中对应方法才能完成对通配符的监听以及正确跳转