參考《Struts 2完全學習手冊》
想到一個問題,struts中,每個請求(對應的線程對象?)訪問一個action實例,該實例是歸請求獨有的,即自己new後delete。但new、delete一個對象是很耗時間和資源的,爲什麼不新建一個pool,事先new好了;某個請求(對應的線程對象)要用(線程對象中要new),就來拿克隆,用完了,歸還給pool並恢復原本狀態後。
1、Action配置(接前一章)
1.1 通配符映射
1.2 默認Action
當用戶請求找不到對應的<action>時,使用默認Action.
2、result配置
Action處理用戶請求,但不能提供對用戶的直接響應。Action處理完用戶請求後,<result>將處理結果對應到相應的視圖(response響應)或執行另一個Action(這個還沒遇到過呢,呵呵)。
結果類型分析(FreeMarker以後介紹)
1、默認的結果類型是dispatcher轉發!!
和<jsp:forward>幾乎是一樣的效果。<result>將處理結果對應到相應的視圖,request對象、action對象也一併傳過去了(所以相應視圖可以直接訪問action對象的屬性值)。URL顯示form act="test"中的test.action。說明這是服務器端處理的,沒有將相應的視圖的URL發給客戶端,讓客戶端請求新地址。
2、可以設置結果類型是重定向redirect。
和response.sendirect幾乎是一樣的效果系統將調用HttpServletResponse的sendRedirect()方法。redirect結果類型的實現類時org.apache.struts2.dispatcher.ServletRedirectResult。使用redirect重定向到其他資源,將重新產生一個請求,而原來的請求內容和請求參數將全部丟失。URL顯示新的資源地址。
3、redireckAction
輸出的是源代碼??
使用通配符配置
使用OGNL動態配置
xiaoxue.jsp能獲得action對象的屬性值,是因爲<result>默認的是轉發類型。