1.每個action方法都回傳一個String類型的值,struts一次請求回傳什麼值是由這個值決定的。
2.在設定檔中,每一個action元素的配置都必須有result元素,每一個result對應一個action的回傳值。
3、Result有兩個屬性:
name:結果的名字,和action中的回傳值一樣,預設值為success;
type:回應結果類型,預設值為dispatcher.
在下面找到struts-default.xml檔中,如下面所示:
說明:
1.從上述可以看出總共10種類型
2.預設類型為ServletDispatcherResult即轉送。
3.結果類型可以是這10種結果類型的任一種。
Dispatcher類型(1)、 說明Dispatcher類型是最常用的結果類型,也是struts框架預設的結果類型。
(2)、 例子頁面參考:/manager/index.jsp
Action參考: AdminAction
設定檔:struts.xml
在設定檔中,可以有兩種寫法:
下面的圖說明了location的來歷:
查看原始碼:
Redirect屬於重定向。如果用redirect類型,則在reuqest作用域的值不能傳遞到前台。
redirectAction類型(1)、說明1.把結果類型重新定向到action
2.可以接受兩種參數
a)actionName: action的名字
b)namespace:命名空間
第一種方式:
<result name="success" type="redirectAction">resulttype/redirectactionAction.action</result>
第二種方式:
<result name="success" type="redirectAction">
<!--
actionName:
請求的action的路徑
namespace:
如果不寫,預設就是請求的action的路徑,如果寫,路徑將被重新賦值
-->
<param name="actionName">
resulttype/redirectactionAction.action
</param>
</result>
第一種方式:
<result name="success" type="redirectAction">resulttype/redirectactionAction.action</result>
第二種方式:
<result name="success"type="redirectAction">
<!--
actionName:
請求的action的路徑
namespace:
如果不寫,預設就是請求的action的路徑,如果寫,路徑將被重新賦值
-->
<paramname="actionName">
resulttype/redirectactionAction.action
</param>
</result>
<package name=”ss” namespace=”/csdn/csdn”>
<action=”delete”>
</package>
<package name=”test” namespace=”/csdn”>
<action=”delete”>
</package>
<package name=”sss” namespace=””>
<action=”delete”>
</package>
Action名稱的搜尋順序
1.取得請求路徑的URI,例如url是:http://server/struts2/path1/path2/path3/test.action
2.先找namespace為/path1/path2/path3的package,如果有這個package,則在這個package中找一個名字為test的action,如果不存在這個package則轉步驟3;
3.尋找namespace為/path1/path2的package,如果有這個package,則在這個package中找一個名字為test的action,如果不存在這個package,則轉步驟4;
4.尋找namespace為/path1的package,如果有這個package,則在這個package中找一個名字為test的action,如果還是不存在這個package,就去預設的namaspace的package下面去找名字為test的action(預設的命名空間為空字串""),如果還是找不到,頁面提示找不到action。
Action原型struts2
Prototype 原型每次請求都會建立一個新的Action對象
Servlet
Singleton 原型第一次要求時,創建servlet物件之後每次都使用該物件即可。
Servlet的生命週期
建立---init---service---destory