在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頁面快取成靜態檔案存在硬碟上...