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