Struts2.5版本方法无法使用通配符问题
2016-06-03 12:31
387 查看
问题:在struts2.5中如果使用方法通配符,是无法进行方法调用的:
因为从2.3开始在package元素中增加了一个属性,为了限制DMI的方法访问:
默认情况下是没有设置值,所以2.3是可以进行调用的。但是到了2.5以后默认设置为true,所以从2.5开始默认情况下是无法进行通配符方法调用的。修改的方式:
1、
2、
在不启用的情况下,注意默认的匹配规则是: SMI is disabled - call to any action method is allowed that matches the default RegEx -
<action name="login_*" class="loginAction" method="{1}"> ............. </action>
因为从2.3开始在package元素中增加了一个属性,为了限制DMI的方法访问:
<package name="test" namespace="/test" extends="struts-default" strict-method-invocation=""> .................. </package>
默认情况下是没有设置值,所以2.3是可以进行调用的。但是到了2.5以后默认设置为true,所以从2.5开始默认情况下是无法进行通配符方法调用的。修改的方式:
1、
<package name="test" namespace="/test" extends="struts-default" strict-method-invocation="false"> </package>
2、
<package name="test" namespace="/test" extends="struts-default" strict-method-invocation="true"> <action name="electricText_*" class="electricTextAction" method="{1}"> <result name="{1}">/system/textAdd.jsp</result> <allowed-methods>添加Action类中允许访问的方法,以逗号分隔</allowed-methods> </action> </package>
在不启用的情况下,注意默认的匹配规则是: SMI is disabled - call to any action method is allowed that matches the default RegEx -
([A-Za-z0-9_$]*)
可以通过定义常量更改,在struts.xml中:
<constant name="struts.strictMethodInvocation.methodRegex" value="([a-zA-Z]*)"/>
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- GUI - Web前端开发框架
- 介绍一款信息管理系统的开源框架---jeecg
- Extjs4.0 最新最全视频教程
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序