1. 程式人生 > >Struts2的package,action,result元素的配置

Struts2的package,action,result元素的配置

package元素:是struts.xml根元素(strtus)的子元素. 和java中的package沒有一點關係.
    僅僅是為了統一管理多個action元素.
格式為:
<package name="" extends="" namespace="" abstract="true|false">
可以一個模組分出一個<package>元素.
常用的屬性:
  name:      表示當前<package>元素的名稱,多個<package>元素的name不能相同.oaPkg/crmPkg
  extends:   自定義的<package>元素必須繼承於struts-default包或者struts-defalt的子包.
             如此一來,當前<package>元素就可以擁有父package的所有配置.
  namespace: 名稱空間,和action的name共同決定了一個action的訪問路徑.
  abstract:  表示當前<package>元素是否是抽象的.
             如果為true,那麼當前<package>就不能定義action元素,只能用於被其他<package>所繼承.
-----------------------------------------------------------------------
開發中的最佳實踐:
多個package共同的配置資訊:
<package name="basePkg" extends="struts-default" namespace="/" abstract="true">
     <!--該package的攔截器配置--->
</package>

***********************************************************************************************

action元素:是<package>元素的子元素,用於配置Action類.
語法:<action name="" class="" method="">
常用的屬性:
  name:   action的名稱,該名稱和當前action所在package的namespace共同決定了訪問路徑.
        訪問Action的格式:http://ip:port/contextPath/namsspace/actionName[.action]
        注意:action名稱沒有/,在同一個<package>不能相同.
  class:  Action類的全限定名,表示把哪一個Action類交給Strtus2框架來管理.
          class的預設值:com.opensymphony.xwork2.ActionSupport.
  method: 當前action需要執行哪一個方法,注意:該方法必須在class對應的類中.

          method的預設值:execute.

*************************************************************************************************

result元素:是<action/>元素的子元素,表示結果檢視(action執行完畢跳轉到哪裡去).
語法格式:<result name="" type=""></result>
result元素的配置:
    name屬性: 唯一,表示邏輯檢視名稱,該名稱就是action方法的返回結果.預設值:success.
    type屬性: 表示資源的跳轉方式(請求轉發/URL重定向),閱讀struts-default包.預設:dispatcher
    文字內容: 表示需要跳轉資源的路徑(從webapp下開始尋找).
result元素的type屬性的常用值:
   dispatcher:     請求轉發:(Action請求轉發到JSP),預設的.
   chain:          請求轉發:(Action請求轉發到Action).
   redirect:       URL重定向:(Action重定向到JSP).
   redirectAction: URL重定向:(Action重定向到Action).
   stream:         檔案下載使用,輸入流.
-------------------------------------------------
result元素分類:
  1):區域性的結果檢視:配置在<action>元素裡面,就只能當前Action可以跳轉的.
  2):全域性的結果檢視:配置在<package>元素中的<global-results>元素裡面,當前<package>的Action都可以跳轉進去.
      先從當前Action中去找指定名字的result,找到就跳轉,找不到,再找全域性的result,找到跳轉,找不到,就報404 錯誤.