用ActionMapping構建漂亮的Struts應用程序
在本系列指南的第四部分,你可以學習如何運用ActionMapping來改進你的Struts應用程序。
by Budi Kurniawan
閱讀本系列指南的前三部分:
第一部分:“你的第一個Struts應用程序”
第二部分:“Struts應用程序中的流程控制”
第三部分:“用ActionForward優化你的Struts應用程序”
邱吉爾曾經說過他喜歡學習新東西,但他覺得沒有必要讓別人教他。不管你是否喜歡學習新知識,也不管有人教你還是你自學,學習java通常意味著仔細研究許多非凡的類。學習Struts也是如此。
這就是我寫本系列第四部分的初衷,在本文中,我將詳述org.apache.struts.action.ActionMapping類,它是從org.apache.struts.config.ActionConfig派生的。ActionMapping將一個請求路徑映射到一個action類,它是Struts應用程序中最常用的類之一。在你深入學習這個類時,你會重新用到在該系列第1、2和3部分創建的兩個login應用程序,從而了解如何運用ActionMapping來重寫應用程序。
當然,你可能不記得以前用過任何ActionMapping實例了。這是因為控制器servlet實際上為你創建了它們。你只需要配置在Struts配置文件(struts-config.xml)中創建的每個ActionMapping實例就行了(通過給它的屬性賦值)。了解這些屬性對正確運用ActionMapping類很重要,因此我將講述這些屬性以及如何定義它們。
首先,讓我們回想一下,Struts配置文件的根元素是<struts-config>。<struts-config>元素可以包含一個可選的<action-mappings>元素,同樣<action-mappings>元素可以包含<action>元素。例如,下面就是本系列第三部分的login應用程序配置文件中的<struts-config>元素及其子元素:
<struts-config>
<action-mappings>
<action path="/login"
type="com.java
<action path="/logout"
type="com.javapro.struts.LogoutAction"/>
<action path="/viewSecret"
type="com.javapro.struts.ViewSecretAction"/>
</action-mappings>
</struts-config>
<action-mapping>中的每個<action>都代表控制器servlet創建的一個ActionMapping實例。一個<action>元素可以包含多個特性,每個特性都和ActionMapping實例中的一個屬性相應。
作為例子,我們來看前面的Struts配置文件中的這個<action>元素:
<action path="/login"
type="com.javapro.struts.LoginAction"/>
這個<action>將路徑“/login”映射到action類com.javapro.struts.LoginAction。換句話說,一個以“/login.do”結尾的用戶請求將被傳遞到LoginAction類。然而,ActionMapping也有其它的用途。你(Struts程序員)可以通過給它的屬性賦值來給ActionMapping實例下達action指令。(有些屬性與action forms相關,我將在本系列的第五部分講述。)
ActionMapping類的屬性
新聞熱點
疑難解答