Struts2 0中的result標籤

2021-08-30 04:59:15 字數 2321 閱讀 3261

在action的指定方法執行完畢後總會返回乙個字串,struts2根據返回的字串去action的配置中的result去找匹配的名字,根據配置執行下一步的操作。

在actionsupport基類中定義了五個標準的返回值

string success = "success";

string none = "none";

string error = "error";

string input = "input";string login = "login";

當然我們可以自己隨意定義返回的名字

result元素有兩個用處,首先它提供乙個邏輯上名字。乙個action可以單純的返回success或input而不用理會之後的具體細節。第二,result元素提供type屬性,可以不僅僅的返回乙個jsp頁面,而可以實現更多有意思的功能。

每個包可以有自己的預設result type,當乙個result沒指定type時將使用預設。正常情況下預設的result type為dispatcher。如果乙個包繼承另乙個包,這個包可以實現自己的預設result也可以繼承父包的預設result。手動指定乙個預設的result如下

同時,乙個result的name屬性也有預設值success。最平常的情況下,乙個result如下

/thankyou.jsp

乙個action可以有多個不同的result

/hello/result.jsp

/hello/error.jsp

/hello/input.jsp

全域性result

有些時候,一些result是可以為所有的action服務的,例如出錯頁面的result,登陸頁面的result

我們可以定義一些全域性result供同乙個包的所有actoin共享。注意首先struts2會先搜尋區域性result,如果沒找到則會去全域性result尋找匹配的result

/error.jsp

/error.jsp

logon!input

result 的動態引數配置

有些時候我們需要從乙個action轉向另乙個action,但是引數卻是執行才能知道,可以用一下的方法實現。下面用乙個例子來說明

....

otheraction?id=$

$...

....

在action中必須有id,redirecturl屬性以及它們的get方法

public class myaction extends actionsupport

this.id = 123;

return success;

}public int getid()

public void setid(int id)

public string getredirecturl()

public void setredirecturl(string redirecturl)

...}

當乙個result有多個引數時可以通過param子屬性指定,在後面會有例子

result 的types

result有許多不同的types,用來實現不同的功能,struts2預設的types有如下幾個

dispatcher 轉到乙個檢視頁面,通常為jsp頁面。這個是預設的type值。

/thankyou.jsp

contenttype 傳送給瀏覽器的流的mime-type (預設text/plain).

contentdispostion- 設定響應頭contentdispostion的值(預設inline)

這個我不太清楚是什麼意思,google了一下也沒什麼好的解釋

inputname action提供的輸入流的屬性名稱(預設inputstream).

buffersize從輸入流寫入到輸出流的快取大小(預設1024位元組).

image/jpeg

imagestream

1024

plaintext 一般用來顯示乙個jsp或html頁面的原始內容

/myjspfile.jsp

redirectaction 定向到另乙個action 覺得沒什麼太大的用處,舉個例子留作參考吧

dashboard

/secure

<-- redirect to an action in the same namespace -->

dashboard.jsp

error

error.jsp

<-- pass parameters (reporttype, width and height) -->

generatereport

/genreport

pie100

100

struts2 0的 的使用

ognl支援類似資料庫中的投影 projection 和選擇 selection 投影就是選出集合中每個元素的相同屬性組成新的集合,類似於關聯式資料庫的字段操作。投影操作語法為 collection.其中 是這個集合中每個元素的公共屬性。例如 group.userlist.將獲得某個group中的所...

Struts 2 0 解讀筆記

凱文 公尺特尼克今年2月初採用安裝了winxp版本的筆記本準備黑掉某網域名稱為cn的中國 誰知剛登陸該站點時就被安裝了50個難以解除安裝的外掛程式,導致計算機網路癱瘓,導致攻擊失敗。沒辦法只能格式化硬碟,重灌系統!經過了這次教訓之後,凱文 公尺特尼克事先安裝了多種防火牆及防毒軟體,一切準備就緒之後,...

Struts 2 0 解讀筆記

1 在資料庫層做設計,充分利用空間換時間的方法,使用資料冗餘。精心優化加入索引 2 開啟資料庫cache,並根據試執行結果,除錯到最佳引數 3 php adodb使用cache快取sql語句的結果 4 使用pear的cache快取系統內資料 5 使用鉤子函式將前台html頁面快取成靜態檔案存在硬碟上...