关于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" />

 

posted @ 2017-06-29 15:07  JUN王者  阅读(2344)  评论(0编辑  收藏  举报