struts2的通配符 * 无法使用,method无效,无法访问404

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Annn_kk/article/details/88761708

在struts2 2.3版本以后为了增加安全性,在action中添加了对方法访问的权限,如果要使用通配符 * 调用方法的话,需要添加额外的代码,不然将会报无法访问的错误
在这里插入图片描述
有以下几种解决方法

  • 一.在action标签中添加< allowed-methods>标签

< allowed-methods>save< /allowed-methods>
< allowed-methods>方法1,方法2,…< /allowed-methods>
< allowed-methods >regex:*< /allowed-methods>

  • 二.在package 标签中添加 global-allowed-methods 标签

< global-allowed-methods>regex:.*< /global-allowed-methods>

  • 三.在package 标签上添加strict-method-invocation 属性

strict-method-invocation=“false”

<!--配置action-->
<!--第一种方式,在package上添加strict-method-invocation="false"-->
<package name="SSH1" extends="struts-default" namespace="/"  strict-method-invocation="false">

    <!--第二种方式,在package中添加 global-allowed-methods-->
    <!--<global-allowed-methods>regex:.*</global-allowed-methods>-->
   
    <action name="customer_*" class="ssh.web.action.CustomerAction" method="{1}">
       
        <!--第三种方式在action中添加allowed-methods-->
        <!--<allowed-methods >regex:*</allowed-methods>-->
        <allowed-methods>save</allowed-methods>

    </action>

</package>
展开阅读全文

没有更多推荐了,返回首页