struts2.5框架使用通配符指定方法(常见错误)

文章参考:https://www.cnblogs.com/gsy52300/p/5778754.html  感谢作者的解惑

在学习struts框架时经常会使用到通配符调用方法,如下:

其中的action name="hello_*"中*这个符号代表的值会传入method=“{1}”中,并对应action类的一个方法名,这样就能很大程度地减少配置文档中action的数目,简化配置文档。

但是在使用这种通配符方法的时候,经常会看到这样的映射错误提示:

如果看到提示的是映射问题,你可以按照映射路线排查一遍,

第一步:先排查访问的链接有没有问题(细节问题,有时单词拼写错误也有可能)

第二步:查看struts.xml的配置(仔细排查,出现问题几率很大)

第三步:查看相关的action类及方法名(比如return的值是不是跟配置文件中的result对应相等)

第四步:查看结果响应页面是否存在问题(出现问题的几率比较小)

(具体的做法我不细讲了,网上很多优秀篇章都有提及,可自行谷歌或者百度)

 

如果上面的四个步骤没出问题,可是还是报错,怎么办?那就可能是2.5版本的问题了

使用struts2.5版本的,需要在配置文档struts.xml中配置

<allowed-methods>Action内的方法名</allowed-methods>

多个方法之间需要用逗号隔开,比如我这里的修改如下:

然后便能运行成功

总结:在struts2.3之前的版本,正常的配置就可以了,但在struts2.3版本之后,使用通配符调用方法时,内部会验证是否允许访问该方法,所以要加上

<allowed-methods>方法名1,方法名2…</allowed-methods>代码。

希望这个小知识点能帮助更多编程爱好者,在java道路上,与志同道合者共勉!
(这些是我参考上面的作者并加上自己的一些领悟,仅供参考)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值