1. 程式人生 > >Struts功能詳解——ActionMapping物件

Struts功能詳解——ActionMapping物件

在一個web應用中,每個資源都必須通過URI來進行引用。 資源包括HTML頁面,JSP頁面,和定製動作。為了給定製動作一個 URI或者說路徑,Struts框架提供了一個 ActionMapping物件。

ActionMaping也是Struts的一個核心物件,通常我們不用手寫ActionMapping類,它只需要在配置檔案中配置就行。

ActionMapping如何配置:

ActionMapping在配置檔案Strtus-config.xml中配置,配置格式如下:

<struts-config>
<action-mappings>
<actionpath="/login"
type="com.bjpowernode.struts.LoginAction"
name="loginForm"                
scope="request"                
>
<forwardname="success" path="/login_success.jsp" />
<forwardname="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控制層的資料字典,這個資料字典裡面存放在ActionActionForward的資訊,在程式執行的過程中,查閱這個資料字典,然後達到相應的位置,執行完成以後,再查詢這個資料字典,轉發特定的資訊。