Struts2 Result 參數詳解。本站提示廣大學習愛好者:(Struts2 Result 參數詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Struts2 Result 參數詳解正文
一個提交到辦事器的處置平日可以分為兩個階段,第一個階段查詢辦事器狀況(查詢或許更新數據庫),第二個階段選擇一個適合的成果頁面其前往給用戶(這裡要講的Result的內容)。
Struts2供給了對分歧品種前往成果的支撐,罕見的有JSP,FreeMarker,Velocity等。
Struts2支撐的分歧類型的前往成果為:
別的第三方的Result類型還包含JasperReports Plugin,專門用來處置JasperReport類型的報表輸入。
在struts-default.xml文件中曾經有了關於一切類型Result的界說:
<result-types> <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/> <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/> <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/> <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/> <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/> <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/> <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/> <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/> <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/> <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" /> <!-- Deprecated name form scheduled for removal in Struts 2.1.0. The camelCase versions are preferred. See ww-1707 --> <result-type name="redirect-action" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/> <result-type name="plaintext" class="org.apache.struts2.dispatcher.PlainTextResult" /> </result-types>
從上述代碼中可以看出在不指定Result類型的時刻應用dispatcher類型。
界說一個Result值,
<result name="success" type="dispatcher"> <param name="location">/ThankYou.jsp</param> </result>
因為type默許值是dispatcher,所以這裡不須要界說,別的name的默許值為success所以這裡也不須要界說。
上述代碼可以簡寫為:
<result> <param name="location">/ThankYou.jsp</param> </result>
別的location參數也能夠直接卸載result標簽外部,所以上述代碼的最簡略的寫法為:
<result>/ThankYou.jsp</result>
我們也能夠界說多個分歧的Result
<action name="Hello"> <result>/hello/Result.jsp</result> <result name="error">/hello/Error.jsp</result> <result name="input">/hello/Input.jsp</result> </action>
上述代碼的寄義為,名字為Hello的Action有三個前往成果,而且都是dispatcher類型(默許類型), 這三個前往值的名字分離為 success(默許值),error,input,對應的頁面的途徑分離為/hello/Result.jsp,/hello/Error.jsp, /hello/Input.jsp。
有些時刻我們須要一個界說在全局的Result,這個時刻我們可以在package外部界說全局的Result,例如:
<global-results> <result name="error">/Error.jsp</result> <result name="invalid.token">/Error.jsp</result> <result name="login" type="redirect-action">Logon!input</result> </global-results>
靜態前往成果
有些時刻,只要當Action履行完璧的時刻我們才曉得要前往哪一個成果,這個時刻我們可以在Action外部界說一個屬性,這個屬性用來存儲Action履行完璧以後的Result值,例如:
private String nextAction; public String getNextAction() { return nextAction; }
在strutx.xml設置裝備擺設文件中,我們可使用${nextAction}來援用到Action中的屬性,經由過程${nextAction}表現的內容來靜態的前往成果,例如:
<action name="fragment" class="FragmentAction"> <result name="next" type="redirect-action">${nextAction}</result> </action>
上述Action的execute辦法前往next的時刻,還須要依據nextAction的屬性來斷定詳細定位到哪一個Action。
假如想轉發到別的個action可以設置type=chain 同時成果不加shtml
以上就是Struts2 Result 參數詳解的全體內容,願望能給年夜家一個參考,也願望年夜家多多支撐。