Struts2.5通配符失效问题的解决

使用通配符调用方法一直出现如下的映射错误:

附上我的struts.xml代码块:

<?xml version="1.0" encoding="UTF-8"?>    
<!DOCTYPE struts PUBLIC    
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"    
    "http://struts.apache.org/dtds/struts-2.5.dtd">  
<struts>

    <!-- 是否开启方法调用 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />  
    <!--添加包 -->
    <package name="gzy" namespace="/" extends="struts-default">
        <action name="*Action" class="gzy.LoginRegistAction" method="{1}">
            <!-- 定义三个逻辑视图和物理资源之间的映射 -->
            <result name="error">/error.jsp</result>
            <result name="success">/welcome.jsp</result>

        </action> 
    </package>  
</struts>    

检查了很多遍,Action也没有写错,配置也没有问题,后来发现原来是版本的问题,放在Struts2.3中是正确的,Struts2.5怎么样也行不通。
Struts2.5 为了增加安全性,在 struts.xml 添加了一个个属性:
<global-allowed-methods>regex:.*</global-allowed-methods>

加在package中,就不出错了


当然还有一种方法,使用通配符调用方法时,内部会验证是否允许访问该方法,所以添加如下代码:
<allowed-methods>方法1,放法2,...</allowed-methods>
方法为Action的类的方法,一样添加在package中。


两种方法都可以解决通配符的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值