Struts2的package,action,result元素的配置
僅僅是為了統一管理多個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 錯誤.