概述:struts2.5以后加强了安全性、下面就是安全配置引发的问题
在学习struts框架时经常会使用到通配符调用方法,如下:
& lt;包名称=="/"扩展=皍sercrud”名称空间“struts-default”比; & lt;动作名称=安馐? *”class=" com.gitee.dgwcode.action。UserCrudAction”方法=皗1}”在 & lt;结果名称="查询"祝辞/视图/success.jsp & lt; !- & lt; allowed-methods>查询、删除、更新、insert——比; & lt;/action>& lt;/package>
,,,其中的<代码>动作名称=皍ser_ *”代码>中*这个符号代表的值会传入<代码>方法=皗1}”代码>中,并对应的行动类的一个方法名,这样就能很大程度地减少配置文档中行动的数目。
但是在使用这种通配符方法的时候,经常会看到这样的映射错误提示
Struts问题报告
Struts已经发现一个未处理的例外:消息:,,,
引用>
没有行动映射名称空间(/)和动作名称[test-update]与[/Struts2_01]上下文路径。如果看到提示的是映射问题,你可以按照映射路线排除一遍,
第一步:先排查访问的链接有没有问题(细节问题)
第二步:查看struts.xml的配置(仔细排查,出现问题几率很大)
第三步:查看相关的动作类及方法(比如返回的值是不是跟配置文件中对的结果应得上等)
第四步:查看结果响应页面是否存在问题(出现问题的几率比较小)
当使用动态调用方法时(action名+感叹号+方法名进行方法调用),需要将其属性改为真的,
如:查询为类中的方法名
https://www.yisu.com/zixun/& lt; a href=" $ {pageContext.request.contextPath}/测试!查询“rel="外部nofollow”祝辞DynamicMethodInvocation & lt; br>当使用通配符调用语法时,建议将其属性改为假(struts2.5.2中默认是false)
当我们需要将其属性改成假时,
只在struts.xml配置文件中加入此句即可修改属性
name=" struts.enable & lt;常数。DynamicMethodInvocation " value=" https://www.yisu.com/zixun/false "/比; & lt; !——动态方法调用——比; & lt;动作名称==癱om.gitee.dgwcode.action.UserCrudAction”比“测试”类; & lt;结果名称="查询"祝辞/视图/success.jsp & lt; allowed-methods>查询、删除、更新insert & lt;/action>总结:& lt; allowed-methods>方法名1,方法名2…& lt;/allowed-methods>代码
struts框架使用的通配符调用方法配置:
& lt;包名称=霸洹?皊truts-default”延伸比; & lt; !——配置行动——比; & lt;动作名称=癮ction_ *”class=靶卸狈椒?皗1}”比; & lt;结果名称=俺晒Α痹趇ndex.jsp & lt;/action> & lt;/package>其中<代码> & lt;动作名称=癮ction_ *”class=靶卸痹?/代码>中的<代码> name=" action_ * "> 代码中的*代表的是方法=皗1}”中的{1}的值,并对应动作类中的一个方法名。
注:struts2.3之前使用以上配置正常,struts2.3之后,使用通配符调用方法要加上& lt; allowed-mthods>方法名1,方法名2 . . & lt;/allowed-mthods>
& lt;包名称=霸洹?皊truts-default”延伸比; & lt; !——配置行动——比; & lt;动作名称=癮ction_ *”class=靶卸狈椒?皗1}”比; & lt;结果名称=俺晒Α痹趇ndex.jsp & lt; allowed-mthods>方法名1,方法名2 . . & lt;/allowed-mthods> & lt;/action> & lt;/package>
以上所述是小编给大家介绍的struts2.5 +框架使用通配符与动态方法,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
struts2.5 +框架使用通配符与动态方法常见问题小结