Struts2中配置通配符遇到的问题

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

<package name="test" namespace="/" extends="struts-default">        
        <!-- 配置Action -->                                       
        <actionname="user_*"  class="userAction" method="{1}">                                   
                <result name="success">/WEB-INF/jsp/login.jsp</result>                 
        </action>                                                          
</package>

其中的action name=”user_*”中*这个符号代表的值会传入method=“{1}”中,并对应action类的一个方法名,这样就能很大程度地减少配置文档中action的数目。
但是自己在学习的过程中碰到了无法通过此方式访问的问题。相应的错误如下:

Message:There is no Action mapped for namespace [/] and action name [user_login] associated with context path [/test].

于是乎开始检查自己的访问路径、产看配置文件、查看对应Action中方法的返回值,然而并没有找到错误点。

然后在开始询问度娘 emmmmm

在翻阅了很多文章之后,找到了和我一样碰壁的同学,原来是在使用Struts2中的版本的问题,我们使用的是Struts2 2.5的版本,此版本在使用通配符调用方法时,内部会验证是否允许访问该方法,所以要在action里面的配置中加上


<allowed-methods>方法名1,方法名2…</allowed-methods>代码
才能够使用

当然还有一种解决方法就是使用2.3的版本 在使用2.3的版本,按照正常的配置来就可以进行访问了…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值