Struts2的Result Type詳細回顧

2021-06-13 04:18:54 字數 2317 閱讀 1443

struts2的result type型別很多,同樣如果長時間 不用,使用起來麻煩,所以在回顧時候,記錄使用,共勉;

一、chain

用來處理action鏈

com.opensymphony.xwork2.actionchainresult

二  dispatcher

用來轉向頁面,通常處理jsp

org.apache.struts2.dispatcher.servletdispatcherresult

三 freemaker

處理freemarker模板

控制特殊http行為的結果型別

重定向到乙個url

org.apache.struts2.dispatcher.servletredirectresult

redirectaction

重定向到乙個action

org.apache.struts2.dispatcher.servletactionredirectresult

stream

org.apache.struts2.dispatcher.streamresult

velocity

處理velocity模板

org.apache.struts2.dispatcher.velocityresult

xslt

處理xml/xlst模板

org.apache.struts2.views.xslt.xsltresult

plaintext

顯示原始檔案內容,例如檔案源**

org.apache.struts2.dispatcher.plaintextresult

redirect-action

重定向到乙個action

org.apache.struts2.dispatcher.servletactionredirectresult

plaintext

顯示原始檔案內容,例如檔案源**

org.apache.struts2.dispatcher.plaintextresult

需求功能是這樣:action1 獲取資料庫配置內容,得到相應model的 動態url ,這裡的url 有的是action有的是jsp頁面。

1.使用result 型別中的  redirect 型別,如下:

$?objectid=$¶m1=$

這樣傳參才能達到action取引數的需要,如果要是加上 : $$

那麼 param1 和 items 這兩個引數都無法從目標action裡得到,如果想得到的話只能用 objectid=$¶m1=$ 這種方式,或者用session來實現,這樣就有點複雜了,而且使用起來也相當的不方便。後來又嘗試了第二種方式: 

2.使用result型別中的redirect-action型別  如下: $$

此時,result之間不能再設其它的自定義的引數了,因為 redirect-action對應的是 org.apache.struts2.dispatcher.servletactionredirectresult,而actionname和namespace是它的兩個屬性,還有乙個重要屬性就是methodname,如果要再加其它自己定的引數,只能擴充套件該類了。我在此基礎上,又在result 之外新增了幾個param 引數,如: $$

$$但是還是不能將param1和param2兩個引數傳到目標action中。既然struts2有這種機制,那麼它就一定能夠實現,兩個action的動態傳參,只是我對它不了解而已,後來,我又翻出來strut2的原始碼和xwork的原始碼,再結果網上的資料,又嘗試了第三種方式,終於可以了。 

3.使用reulst 型別中chain型別 如下: $$

$$$這樣就可以實現傳參了,這裡的引數所有物件都可以傳,包括map,list,set 等集合也可以。同時這裡還需要注意乙個小問題,chain這種型別是xwork中的result型別,它對應的類是: 

com.opensymphony.xwork2.actionchainresult .   這裡需要注意乙個小問題, actionname,namespace都是他的屬性,所以對於傳過的url引數要做一下處理。 

actionname必須是action的名稱,namespace是他命名空間,必須以"/"開頭,如: 

/tab/gettemplate.action       則 namespace="/tab"   ;  actionname=」gettemplate「; 

Struts2字尾 深入Struts2

一 將action字尾變成html字尾 xmlversion 1.0 encoding utf 8 doctype struts public apache software foundation dtd struts configuration 2.1 en struts include file...

struts2學習筆記 struts2的配置檔案

一 struts.xml定義bean的作用 1.建立該bean的例項,將該例項作為struts2框架的核心元件使用。2.bean包含的靜態方法需要乙個值注入。很方便地允許不建立某個類的例項,卻可以接受框架常量。通常需要設定static true 通常,當指定了type屬性時,該屬性不應該制定為tru...

struts2教程 四 struts2的型別轉換

web應用型別的轉換分為兩種情況 1.從客房端的字串到自定義型別的轉換。2.頁面輸出時從自定義型別到字串的轉換。在struts2中分兩種轉換,一種是區域性轉換,另一種是全域性型別轉換。具體轉換的實施需要乙個轉換類和乙個自定義類。我們先來看區域性型別轉換。區域性型別轉換 對於int等基本型別,stru...