Struts2 action的跳轉型別

2021-06-14 22:22:17 字數 1654 閱讀 9248

1 配置result

result的目的就是告訴struts2框架,在執行完乙個action後,需要系統做什麼?是把乙個檢視資源呈現給使用者還是執行另外乙個action,result配置起到了乙個「路標」的作用。

result按照作用域範圍可以分為區域性result和全域性result。

區域性result:包含在action定義中, result屬性是乙個action的子元素。其作用範圍只能在本action中。

全域性result:使用來定義,其作用範圍是所有的action都可以使用。

其中type指定了result的型別,預設是dispatcher,該型別支援jsp檢視技術。

對應子元素,可以指定下面兩個屬性:

location:該屬性定義了該檢視對應的實際檢視資源

parse:該引數指定是否可以在實際檢視名字中使用ognl表示式,struts2框架預設該屬性為true,即支援ognl表示式。

如果沒有指定result的name屬性,則系統會預設為success;如果沒有指定location屬性,系統會把中間的字串當作實際檢視資源來處理。

2 result的型別

struts2框架預設配置中已經提供了很多的result型別,可以開啟struts-default.xml配置檔案來檢視。

chain:action鏈式處理的結果型別,也就是將結果**到這個action中。

chart:整合jfreechart的結果型別

dispatcher:用於整合jsp的結果型別

freemarker:用於整合freemarker結果型別。

httpheader:用於控制特殊的http行為的結果型別。

jasper:用於jasperreports整合的結果型別

jsf:用於整合jsf後的結果型別

redirect:實際上dispatcher和redirect的區別就是在於**和重定向的區別。

redirect-action:用於直接redirect action。

tiles:用於整合tiles後的結果型別。

velocity:用於整合velocity的結果型別。

xslt:用於整合xml lt的結果型別。

plaintext:用於顯示某個頁面的源**。

chain型別

struts2框架支援配置多個action組成乙個鏈或者工作流來處理使用者的請求,而action鏈的實現,是通過***chaininginterceptor完成的。 chaininginterceptor在源執行完畢後,將源action的使用者請求引數、值棧、session的資料賦值給目的action,也就是說,在執行多個action過程中,引數都是保留的。struts2框架並不推薦開發者使用這種action鏈式的結果型別,該框架推薦使用redirect-action型別。

redirect型別

redirect結果型別與struts2框架預設的結果型別dispatcher相對應。 到dispatcher型別是將請求**到指定的檢視資源,而redirect型別是重定向到指定的檢視資源。重定向將會丟失所有的引數、值棧和請求屬性,即同時失去了action的處理結果。而dispatcher是型別**,將會把上述的所有資料資源**給檢視資源

redirect-action型別

redirect-action結果型別與redirect結果型別非常相似,都是重新生成乙個新的請求,都是重新定向。

Struts2 action跳轉時帶引數跳轉

在實現action跳轉到另乙個action時,需要攜帶引數,可以直接在struts.xml配置檔案中對應的跳轉action的地方加上,引數的配置,用ognl表示式,可以從session中取值。如果要傳遞兩個引數,中間用 代替 xml中 要轉義 eg check checkpage.action?ei...

struts2 action 配置方法

struts2 action幾乎完全吸收了xwork 的精華,近日學習struts 2,總結一下action的配製方法。首先看一下com.opensymphony.xwork2.action的介面宣告,action提供execute 方法,子類必須實現execute 方法。public inte c...

struts2 action中result引數詳解

chain 用來處理action鏈 com.opensymphony.xwork2.actionchainresult dispatcher 用來轉向頁面,通常處理jsp org.apache.struts2.dispatcher.servletdispatcherresult freemaker ...