04. struts2中Result配置的各種視圖轉發類型

概述

<action name="helloworld" class="com.liuyong666.action.HelloWorldAction">
	<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
  • result配置類似於struts1中的forward,但struts2中提供了多種結果類型,常用的類型有:
    • dispatcher(默認值)
    • redirect(重定向)
    • redirectAction
    • plainText
  • 通過type屬性值指定。

結果類型

  • redirect

    • 在result中還可以使用${屬性名}表達式訪問action中的屬性,表達式裏的屬性名對應action中的屬性。如下:

    •   <result type="redirect">/view.jsp?id=${id}</result>
      
  • redirectAction

    • 如果重定向的action在同一個包下:

    •   <result type="redirectAction">helloworld</result>
      
    • 如果重定向的action在別的命名空間下:

    •   <result type="redirectAction">
        		<param name="actionName">helloworld</param>
        		<param name="namespace">/test</param>
        </result>
      
  • plainText

    • 顯示原始文件內容,例如:當我們需要原樣顯示jsp文件源代碼的時候,我們可以使用此類型。

    •   <result name="source" type="plainText">
        		<param name="location">/xxx.jsp</param>
        		<param name="charSet">UTF-8</param><!-- 指定讀取文件的編碼 -->
        </result>
      

全局結果集(Globle Result)

  • 當有多個Action使用同一個結果集時,則可以使用全局結果集(Globle Result),如下:

  •  <global-results> <!-- 定義在包裏 -->
      		<result name="mainpage">/main.jsp</result>
     </global-results>
    
  • 多個包想使用同一個結果集,可以利用包的繼承,實現代碼重用。

    • 創建一個名叫"base"的package,讓它繼承"struts-default"
    • 該package裏放入共用的global-results
    • 想要使用該結果集的包繼承"base"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章