Struts的模塊使用實例

Struts的模塊使用實例

在使用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資源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章