国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

Struts初級教程(6)-使用模塊

2024-09-05 00:17:22
字體:
供稿:網(wǎng)友
      模塊化編程是目前趨勢,即把項目分成了多個模塊交由不同小組開發(fā)。
      使用Struts框架時,每個請求都由Action去處理,并且還要在struts-config.xml中加以設(shè)定,這樣以來做小項目還行,在大型網(wǎng)站的開發(fā)中,有很多小組負(fù)責(zé)不同的模塊,如果每一個小組要對一個struts-config.xml進(jìn)行設(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)在負(fù)責(zé)后臺模塊的開發(fā)人員只要管理自己的開發(fā)文檔設(shè)定就行了,就像前面所說的一樣,當(dāng)ActionServlet收到請求時,它是根據(jù)模塊你所指定的后綴,進(jìn)行處理是哪個模塊的請求。
例如: 
       http://localhost:8080/strutsmodel/admin/admin.do
這個URL,表示請求由strutsmodel工程的admin環(huán)境的admin.do來處理這個請求。這樣以來前臺和后臺就分明了,各自開發(fā)各自的,各自管理自己的配置文件,達(dá)到松耦合的目的。
當(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)境上下文的路徑進(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>
這個是全局可以找到的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資源。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 洪雅县| 台前县| 肇州县| 土默特右旗| 芜湖市| 文安县| 平顶山市| 赤壁市| 博乐市| 晋中市| 长子县| 海原县| 新竹县| 丘北县| 灵川县| 阳新县| 万荣县| 福清市| 宁晋县| 黄平县| 芦溪县| 炉霍县| 鹰潭市| 商河县| 香河县| 安国市| 行唐县| 阿城市| 佳木斯市| 荆门市| 新巴尔虎右旗| 平邑县| 洛宁县| 顺昌县| 怀来县| 济南市| 射阳县| 郧西县| 安远县| 高淳县| 宜川县|