首页 > 代码库 > struts2.5动态方法调用和默认Action
struts2.5动态方法调用和默认Action
在动态方法调用中,使用通配符方法出现问题,参考了http://www.cnblogs.com/jasonlixuetao/p/5933671.html 这篇博客,问题解决了。
这个是helloworld.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" 4 "http://struts.apache.org/dtds/struts-2.5.dtd"> 5 6 <struts> 7 <package name="default" namespace="/" extends="struts-default"> 8 <global-allowed-methods>regex:.*</global-allowed-methods> 9 <action name="*_*_*" method="{2}" 10 class="com.imooc.{3}.{1}Action"> 11 <result>/result.jsp</result> 12 <result name="add">/{2}.jsp</result> 13 <result name="update">/{2}.jsp</result> 14 </action> 15 </package> 16 </struts>
在struts.xml中包含了这个文件:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" 4 "http://struts.apache.org/dtds/struts-2.5.dtd"> 5 6 <struts> 7 8 <include file="helloworld.xml"></include> 9 <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant> 10 11 </struts>
解决2.5版本通配符的动态方法调用就是加上了这一句:
<global-allowed-methods>regex:.*</global-allowed-methods>
但是,问题来了,在使用默认Action时,加上这一句就会报错,不加就可以正常运行,下面是正常运行的helloworld.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" 4 "http://struts.apache.org/dtds/struts-2.5.dtd"> 5 6 <struts> 7 <package name="default" namespace="/" extends="struts-default"> 8 9 <default-action-ref name="index"></default-action-ref> 10 <action name="index"> 11 <result>/error.jsp</result> 12 </action> 13 14 <action name="*_*_*" method="{2}" 15 class="com.imooc.{3}.{1}Action"> 16 <result>/result.jsp</result> 17 <result name="add">/{2}.jsp</result> 18 <result name="update">/{2}.jsp</result> 19 </action> 20 </package> 21 </struts>
又发现,也只能运行默认的action,并不能调用到add或update方法。
struts2.5动态方法调用和默认Action
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。