XML代碼:
- <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"?? "http://struts.apache.org/dtds/struts-2.0.dtd">????
- <struts>????
- ??
- <include file="struts-default.xml" />????
- <!--前幾天有人說繼承不成功,有貼回復(fù)是<package>和<include>順序問題(<include/>和<package>沒先后順序),關(guān)鍵在于解析是自上而下的,要繼承某xml文件,就要先引入該文件-->??
- <package name="default" extends="struts-default">??
- ??
- <!--定義默認視圖,我定義默認為freemarker-->??
- <result-types>????
- ??<result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult" default="true" />????
- </result-types>??
- ??
- <!--如果你僅僅需要頁面跳轉(zhuǎn),就沒必要在寫一個action了,直接用ActionSupport就行了-->??
- <action name="login" class="com.opensymphony.xwork2.ActionSupport">??
- <!--默認返回success,我上面定義默認type為freemarker,這里就不用定義type屬性了-->??
- ??<result>/Login.ftl</result>??
- </action>????
- <action name="userInput" class="pro.action.app.UserRegisterAction">????
- ??<interceptor-ref name="createSession">????
- ??<!--經(jīng)測試,該攔截器沒有該參數(shù),設(shè)置后會拋異常;該參數(shù)主要設(shè)置該攔截器作用于那些方法-->??
- ????<!--<param name="includeMethods">input,back,cancel</param>-->????
- ??</interceptor-ref>????
- ??<interceptor-ref name="token">??
- ????<param name="excludeMethods">input,back,cancel</param>????
- ??</interceptor-ref>????
- ??<interceptor-ref name="model-driven" />????
- ??<interceptor-ref name="validationWorkflowStack">??
- ????<!--設(shè)置不需攔截的方法-->???
- ????<param name="validation.excludeMethods">input,back,cancel</param>????
- ????<param name="workflow.excludeMethods">input,back,cancel</param>????
- ??</interceptor-ref>????
- ??<result name="invalid.token">/doubleSubmit.html</result>????
- ??<result name="input">/app/UserRegister.ftl</result>????
- ??<result name="login">/Login.ftl</result>????
- ??<result name="success">/Login.ftl</result>????
- </action>??
- <!--注意你也可以給action設(shè)置參數(shù),同樣是用<param/>賦值-->??
- </package>????
- <include file="cfg/struts/struts-filedownload.xml"></include>??
- </struts>