程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Struts從零開始六、Struts的模塊使用實例

Struts從零開始六、Struts的模塊使用實例

編輯:關於JAVA

在使用Struts框架時,每個請求都由Action去處理,並且還要在struts-config.xml中加以設定,這樣以來做小項目還行,在大型網站的開發中,有很多小組負責不同的模塊,如果每一個小組要對一個struts-config.xml進行設定,將會導致struts-config.xml的版本控制問題。

您可以為每個小組分配不同的struts-config.xml設定文件,方法是在ActionServlet參數的config參數後面加上後綴,如果是config/admin,那麼相應的配置文件的名字就是:struts-config-admin,他們的後綴名字必須對應,這樣才能映射上。

例如我們可以把後台處理分配一個小組,設定具體代碼如下所示:web.xml

action
org.apache.struts.action.ActionServlet
config
/WEB-INF/conf/struts-config.xml
config/admin
/WEB-INF/conf/struts-confg-admin.xml
debug
3
detail
3
0

config/admin:指定了admin模塊的所使用的配置文件是struts-config-admin.xml,現在負責後台模塊的開發人員只要管理自己的開發文檔設定就行了,就像前面所說的一樣,當ActionServlet收到請求時,它是根據模塊你所指定的後綴,進行處理是哪個模塊的請求。

例如:

http://localhost:8080/strutsmodel/admin/admin.do

這個URL,表示請求由strutsmodel工程的admin環境的admin.do來處理這個請求。這樣以來前台和後台就分明了,各自開發各自的,各自管理自己的配置文件,達到松耦合的目的。

當ActionServlet請求接收請求,它判斷URL中相對與context的前綴,例如上例中的admin,於是就知道應該使用admin模塊。下面是struts-config-admin.xml:

……
path="/admin"
type="org.zhoudq.webapp.action.AdminAction" >
……

這樣以來所有的path設定將自動被加上login前綴,例如必須使用以下的路徑才可以正確的請求到AdminAction:

http://localhost:8080/strutsmodel/admin/admin.do

在模塊中的Action在查找forward時,都是以所在模塊,查找對應的struts-confg-XXX.xml的,例如上面的AdminAction在查找forward時,則會查找struts-config-admin.xml中的forward元素,也就是說,模塊中的forward對象的查找都是相對於模塊的路徑的,而不是相對與環境上下文。

那麼我們模塊分配工作幾已經搞定了,各個小組可以分別開工了,但是問題來了,那麼如何從當前的模塊換到另一個模塊呢?

當您的項目分作很多個模塊時,在使用者點某個鏈接時,您有兩個方法可以在模塊之間切換。

一、方法一

是使用相對與環境上下文的路徑進行forward轉發,您可以在當前的struts-config-XX.xml如下設定,例如是:struts-config-admin.xml中加入:

name="switchModuleToFront"
contextRelative="true"
path="/front/login.do"
redirect="true"/>

這個是全局可以找到的forward中設定的,下面是在action元素中設定如何轉發模塊,代碼如下:

……
path="/admin"
type="org.zhoudq.webapp.action.AdminAction" >
name="admin"
contextRelative="true"
path="/front/login.do"
redirect="true"/>
……

上面這種配置就是通過forward元素轉換到相應的模塊,下面我們看另一種方法吧。

二、方法二

這種方法是我們通過配置Struts的一個特定的類SwitchAction,就能實現上面的要求了。並且需要兩個參數:

1. prefix:用來指定模塊的後綴名稱

2. page:用來指定你的資源路徑。

例如:

……
path="/switch"
type="org.apache.struts.actions.SwitchAction"/>
……

例如:

http://localhost:8080/strutsmodel/switch.do?prefix=/admin&page=/admin.do

這個是訪問我們後台模塊的admin.do資源。模塊化決絕了我們開發中的不少問題吧,希望能幫助您解決一些問題,嘿嘿,加油吧……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved