Struts初級教程(6)-使用模塊_JSP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:Struts初級教程(5)-表單驗證應(yīng)該清楚在Struts框架中,使用ActionFormBean來實現(xiàn)應(yīng)用程序系統(tǒng)的非持久性數(shù)據(jù)存儲和維護功能,它采用了自動填充屬性和調(diào)用的機制。所以必須繼承ActionForm類,并且包涵用戶表單輸入的屬性,以及相應(yīng)的get方法和set方法。另外,還可以根據(jù)需要重寫父類的res
模塊化編程是目前趨勢,即把項目分成了多個模塊交由不同小組開發(fā)。使用Struts框架時,每個請求都由Action去處理,并且還要在struts-config.xml中加以設(shè)定,這樣以來做小項目還行,在大型網(wǎng)站的開發(fā)中,有很多小組負責(zé)不同的模塊,如果每一個小組要對一個struts-config.xml進行設(shè)定,將會導(dǎo)致struts-config.xml的版本控制問題。
所以為了解決這個問題,可以為每個小組分配不同的struts-config.xml設(shè)定文件,方法是在ActionServlet參數(shù)的config參數(shù)后面加上后綴,如果是config/admin,那么相應(yīng)的配置文件的名字就是:struts-config-admin,他們的后綴名字必須對應(yīng),這樣才能映射上。
例如我們可以把后臺處理分配一個小組,設(shè)定具體代碼如下所示:web.xml
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/conf/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>config/admin</param-name>
<param-value>/WEB-INF/conf/struts-confg-admin.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
config/admin:指定了admin模塊的所使用的配置文件是struts-config-admin.xml,現(xiàn)在負責(zé)后臺模塊的開發(fā)人員只要管理自己的開發(fā)文檔設(shè)定就行了,就像前面所說的一樣,當(dāng)ActionServlet收到請求時,它是根據(jù)模塊你所指定的后綴,進行處理是哪個模塊的請求。
例如:
http://localhost:8080/strutsmodel/admin/admin.do
這個URL,表示請求由strutsmodel工程的admin環(huán)境的admin.do來處理這個請求。這樣以來前臺和后臺就分明了,各自開發(fā)各自的,各自管理自己的配置文件,達到松耦合的目的。
當(dāng)ActionServlet請求接收請求,它判斷URL中相對與context的前綴,例如上例中的admin,于是就知道應(yīng)該使用admin模塊。下面是struts-config-admin.xml:
……
<action
path="/admin"
type="org.zhoudq.webapp.action.AdminAction" >
<forward name="admin" path="/admin.jsp" />
</action>
……
這樣以來所有的path設(shè)定將自動被加上login前綴,例如必須使用以下的路徑才可以正確的請求到AdminAction:
http://localhost:8080/strutsmodel/admin/admin.do
在模塊中的Action在查找forward時,都是以所在模塊,查找對應(yīng)的struts-confg-XXX.xml的,例如上面的AdminAction在查找forward時,則會查找struts-config-admin.xml中的forward元素,也就是說,模塊中的forward對象的查找都是相對于模塊的路徑的,而不是相對與環(huán)境上下文。
那么我們模塊分配工作幾已經(jīng)搞定了,各個小組可以分別開工了,但是問題來了,那么如何從當(dāng)前的模塊換到另一個模塊呢?
當(dāng)您的項目分作很多個模塊時,在使用者點某個鏈接時,您有兩個方法可以在模塊之間切換。
一、方法一
是使用相對與環(huán)境上下文的路徑進行forward轉(zhuǎn)發(fā),您可以在當(dāng)前的struts-config-XX.xml如下設(shè)定,例如是:struts-config-admin.xml中加入:
<global-forwards>
<forward
name="switchModuleToFront"
contextRelative="true"
path="/front/login.do"
redirect="true"/>
</global-forwards>
這個是全局可以找到的forward中設(shè)定的,下面是在action元素中設(shè)定如何轉(zhuǎn)發(fā)模塊,代碼如下:
……
<action
path="/admin"
type="org.zhoudq.webapp.action.AdminAction" >
<forward
name="admin"
contextRelative="true"
path="/front/login.do"
redirect="true"/>
</action>
……
上面這種配置就是通過forward元素轉(zhuǎn)換到相應(yīng)的模塊,下面我們看另一種方法吧。
二、方法二
這種方法是我們通過配置Struts的一個特定的類SwitchAction,就能實現(xiàn)上面的要求了。并且需要兩個參數(shù):
1. prefix:用來指定模塊的后綴名稱
2. page:用來指定你的資源路徑。
例如:
……
<action-mappings>
<action
path="/switch"
type="org.apache.struts.actions.SwitchAction"/>
</action-mappings>
……
例如:
http://localhost:8080/strutsmodel/switch.do?prefix=/admin&page=/admin.do 是訪問我們后臺模塊的admin.do資源。
分享:Struts初級教程(4)-對國際化的支持隨著全球經(jīng)濟的在體化趨勢,網(wǎng)頁設(shè)計開發(fā)者應(yīng)該開發(fā)出支持多國語言、國家化的web應(yīng)用程序。就是一個web應(yīng)用程序在運行時能夠根據(jù)客戶端請求所來自的國家和語言的不同顯示不同的用戶界面。這樣當(dāng)需要在應(yīng)用程序中添加對一種新的語言的支持時,不需要對已有的軟
相關(guān)JSP教程:
- jsp response.sendRedirect不跳轉(zhuǎn)的原因分析及解決
- JSP指令元素(page指令/include指令/taglib指令)復(fù)習(xí)整理
- JSP腳本元素和注釋復(fù)習(xí)總結(jié)示例
- JSP FusionCharts Free顯示圖表 具體實現(xiàn)
- 網(wǎng)頁模板:關(guān)于jsp頁面使用jstl的異常分析
- JSP頁面中文傳遞參數(shù)使用escape編碼
- 基于jsp:included的使用與jsp:param亂碼的解決方法
- Java Web項目中連接Access數(shù)據(jù)庫的配置方法
- JDBC連接Access數(shù)據(jù)庫的幾種方式介紹
- 網(wǎng)站圖片路徑的問題:絕對路徑/虛擬路徑
- (jsp/html)網(wǎng)頁上嵌入播放器(常用播放器代碼整理)
- jsp下顯示中文文件名及絕對路徑下的圖片解決方法
- 相關(guān)鏈接:
- 教程說明:
JSP教程-Struts初級教程(6)-使用模塊
。