Struts2總結

Struts2使用OGNL進行類型轉換。提供基本和常用對象的轉換器。
Struts2使用“ValueStack”技術,使taglib能夠訪問值而不需要把你的頁面(view)和對象綁定起來。
Struts2支持通過攔截器堆棧(Interceptor Stacks)爲每一個Action創建不同的生命週期。


temp:#ActionContext儲存了整個訪問週期中的request,session,application
1、FilterDispatcher的處理流程
1、處理HttpServletRequest,如果思上傳的請求,對request進行包裝
2、查找該請求路徑是否有對應的Action,有的話把該路徑包裝成一個ActionMapping對象
#ActionMapping對象中含有name,method,namespace,params,result等屬性(holds the action mapping information)
3、交給Dispatcher類的serviceAction(request, response,servletContext,mapping)方法處理

2、Dispatcher類的處理過程
1、分別實例化幾個儲存request,session,application的信息的Map對象

3、Struts2中的攔截器
DispatcherFilter攔截器
ActionAutowiringInterceptor攔截器
ParametersInterceptor攔截器
ServletConfigInterceptor攔截器

4、幾個輔助接口
SessionAware-通過Map來提供對所有session屬性的訪問
ServletRequestAware-提供對HttpServletRequest對象的訪問
RequestAware-通過Map來提供對所有request屬性的訪問
ApplicationAware-通過Map來提供對所有application屬性的訪問
ServletResponseAware-提供對HttpServletREsponse對象的訪問
ParameterAware-通過Map來提供所有request String和表單數據的訪問
PrincipalAware-提供對PrincipleProxy對象的訪問;該對象實現了HttpServletRequest對象的有關pringcile和role的方法,但是它提供了一個 Proxy,因此所有的實現都是獨立於Action的。
ServletContextAware-提供對ServletContext對象的訪問

5、struts2的擴展自定義攔截器
自定義攔截器實現Interceptor接口或者繼承AbstractInterceptor
ActionInvocation對象可以用來訪問運行時環境,以及Action本身;上下文(包括了Web應用的請求參數,session參數,用戶Local等);Action 的執行結果;還有那些調用Action的方法並判斷Action是否已被調用。

6、縮小Action的配置文件的牛X配置
前提:struts.enable.SlashesInActionNames = true;
URL模式:/{module}/{entity}/{action}.action
配置文件:
<action name="*/*/*" method="{3}" class="com.infoq.action.{1}.{2}action">
<result name="view">/{1}/update{2}/jsp</result>
<result name="list">/{1}/list{2}.jsp</result>
</action>
使用超強通配符
發佈了49 篇原創文章 · 獲贊 0 · 訪問量 2721
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章