关于Struts2通配符无效的说明

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

1、struts2.5 为了增加安全性,在 struts.xml 添加了这么个属性:<global-allowed-methods>regex:.*</global-allowed-methods>,例子如下:

<package name="default" extends="struts-default" namespace="/index" >
<global-allowed-methods>regex:.*</global-allowed-methods>

<action name="User_add" class="com.wg.struts2.UserAction" >
<result>/user/addUser.jsp</result>
</action>

<action name="*_*" class="com.wg.struts2.{1}Action" method="{2}">
<result>/user/{2}{1}.jsp</result>
</action>

<action name="help" >
<result>/help.jsp</result>
</action>

</package>

2、当使用动态调用方法时(action名 + 感叹号 + 方法名进行方法调用),如:<a href="<%=context %>/index/User_add!add">添加用户</a><br />,则需要在配置文件中加上配置:

<constant name="struts.enable.DynamicMethodInvocation" value="true" />
上一篇:Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介


下一篇:CentOS搭建GitLab服务器