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