標籤:使用 file type public eth update apache xtend war
在動態方法引動過程中,使用萬用字元方法出現問題,參考了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