Struts2框架學習
Struts功能詳解——ActionMapping對象
ActionMapping描述了struts中用戶請求路徑和Action的映射關系,在struts中每個ActionMapping都是通過path屬性和一個特定的用戶請求URL關聯。它負責轉發用戶請求給具體的Action,同時還轉發了其他的一些相關信息,這種請求和處理動作之間的映射關系保存在struts-config.xml這個配置文件中,在web服務器初始化的時候,會加載這個配置文件,struts給每一個Action都創建一個ActionMapping對象,用來提供給Action使用,當ActionServlet轉發請求的時候,ActionMapping對象會被作為參數傳遞給Action的execute()方法。ActionMaping也是Struts的一個核心對象,通常我們不用手寫ActionMapping類,它只需要在配置文件中配置就行。
ActionMapping如何配置:
ActionMapping在配置文件Strtus-config.xml中配置,配置格式如下:
- <struts-config>
- <action-mappings>
- <actionpathactionpath="/login"
- type="com.bjpowernode.struts.LoginAction"
- name="loginForm"
- scope="request"
- >
- <forwardnameforwardname="success" path="/login_success.jsp" />
- <forwardnameforwardname="error"path="/login_error.jsp"/>
- </action>
- </action-mappings>
- </struts-config>
其中<action>標簽是為每一個獨立的action配置,配置他們的訪問方式和訪問控制。
<forward>標簽配置action執行完返回以後,需要到達的地方。
其中name scope type分別是actionMapping的一個屬性,它對應著action的需要訪問的位置和數據來源,還有數據範圍。
ActionMapping的功能:
ActionMapping的主要功能就是管理Action的信息和管理Action執行完成以後的ActionForward的信息。
它將特定請求映射到特定Action的相關信息存儲ActionMapping中,ActionServelt將ActionMapping傳送到Action類execute()方法,Action將使用ActionMapping的findForward()方法,此方法返回一個指定名稱的ActionForward,這樣Action就完成了本地轉發。若沒有找到具體的ActionForward,就返回一個null.
ActionMapping的方法:
publicExceptionConfig findException(Class type) ,查找異常對象
public ActionForwardfindForward(String name) 可在映射中動態添加ActionForward:
public String[]findForwards()找到一個Action可以使用的actionForward列表
public ActionForwardgetInputForward() 得到本action的輸入ActionForard.
ActionMapping繼承於org.apache.struts.config.ActionConfig
總之,對於ActionMapping來說,起算是一個web控制層的數據字典,這個數據字典裏面存放在Action和ActionForward的信息,在程序執行的過程中,查閱這個數據字典,然後達到相應的位置,執行完成以後,再查詢這個數據字典,轉發特定的信息。
Struts2框架學習