升级Struts2.5后使用DMI动态方法调用遇到问题
轉(zhuǎn)自:http://www.lvhongqiang.com/blog429.html
問題:
升級(jí)Struts2.5后使用DMI動(dòng)態(tài)方法調(diào)用報(bào)錯(cuò),method 找不到。
源碼:
struts.xml
分析:
目前情況:
json_record_list.action訪問不會(huì)報(bào)錯(cuò)。
json_record_query.action訪問報(bào)錯(cuò)。
調(diào)用Action中l(wèi)ist方法時(shí)并沒有報(bào)錯(cuò),隨后調(diào)用query方法時(shí)報(bào)錯(cuò),問題鎖定方法名。改為隨意字符串a(chǎn)bcdeq之類方法名都會(huì)報(bào)錯(cuò),就是說只有特定方法名才可以。所以懷疑struts某處有關(guān)于方法名的默認(rèn)設(shè)置。百度后得知Struts2.5新增了allowed-methods配置,只有被允許的方法名才可以動(dòng)態(tài)調(diào)用。
解決辦法:
在配置文件struts.xml中添加:<global-allowed-methods>regex:.*</global-allowed-methods>
或者在某一action內(nèi)添加<allowed-methods>regex:.*</allowed-methods>
注解方式:
在 action 上使用?@AllowedMethods?注解
默認(rèn)的設(shè)置:
附:全局設(shè)置是增量而不是覆蓋的,支持正則和直接匹配方法
轉(zhuǎn)載于:https://www.cnblogs.com/lhq1/p/6231255.html
總結(jié)
以上是生活随笔為你收集整理的升级Struts2.5后使用DMI动态方法调用遇到问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++中没有定义类的引用。
- 下一篇: Codevs 1025 选菜