在使用Struts框架時每個請求都由Action去處理並且還要在strutsconfigxml中加以設定這樣以來做小項目還行在大型網站的開發中有很多小組負責不同的模塊如果每一個小組要對一個strutsconfigxml進行設定將會導致strutsconfigxml的版本控制問題
您可以為每個小組分配不同的strutsconfigxml設定文件方法是在ActionServlet參數的config參數後面加上後綴如果是config/admin那麼相應的配置文件的名字就是strutsconfigadmin他們的後綴名字必須對應這樣才能映射上
例如我們可以把後台處理分配一個小組設定具體代碼如下所示webxml
action
orgapachestrutsactionActionServlet
config
/WEBINF/conf/strutsconfigxml
config/admin
/WEBINF/conf/strutsconfgadminxml
debug
detail
config/admin指定了admin模塊的所使用的配置文件是strutsconfigadminxml現在負責後台模塊的開發人員只要管理自己的開發文檔設定就行了就像前面所說的一樣當ActionServlet收到請求時它是根據模塊你所指定的後綴進行處理是哪個模塊的請求
例如
這個URL表示請求由strutsmodel工程的admin環境的admindo來處理這個請求這樣以來前台和後台就分明了各自開發各自的各自管理自己的配置文件達到松耦合的目的
當ActionServlet請求接收請求它判斷URL中相對與context的前綴例如上例中的admin於是就知道應該使用admin模塊下面是strutsconfigadminxml
……
path=/admin
type=orgzhoudqwebappactionAdminAction >
……
這樣以來所有的path設定將自動被加上login前綴例如必須使用以下的路徑才可以正確的請求到AdminAction
在模塊中的Action在查找forward時都是以所在模塊查找對應的strutsconfgXXXxml的例如上面的AdminAction在查找forward時則會查找strutsconfigadminxml中的forward元素也就是說模塊中的forward對象的查找都是相對於模塊的路徑的而不是相對與環境上下文
那麼我們模塊分配工作幾已經搞定了各個小組可以分別開工了但是問題來了那麼如何從當前的模塊換到另一個模塊呢?
當您的項目分作很多個模塊時在使用者點某個鏈接時您有兩個方法可以在模塊之間切換
一方法一
是使用相對與環境上下文的路徑進行forward轉發您可以在當前的strutsconfigXXxml如下設定例如是strutsconfigadminxml中加入
name=switchModuleToFront
contextRelative=true
path=/front/logindo
redirect=true/>
這個是全局可以找到的forward中設定的下面是在action元素中設定如何轉發模塊代碼如下
……
path=/admin
type=orgzhoudqwebappactionAdminAction >
name=admin
contextRelative=true
path=/front/logindo
redirect=true/>
……
上面這種配置就是通過forward元素轉換到相應的模塊下面我們看另一種方法吧
二方法二
這種方法是我們通過配置Struts的一個特定的類SwitchAction就能實現上面的要求了並且需要兩個參數
. prefix用來指定模塊的後綴名稱
. page用來指定你的資源路徑
例如
……
path=/switch
type=orgapachestrutsactionsSwitchAction/>
……
例如
;page=/admindo
這個是訪問我們後台模塊的admindo資源模塊化決絕了我們開發中的不少問題吧希望能幫助您解決一些問題嘿嘿加油吧……
From:http://tw.wingwit.com/Article/program/Java/ky/201311/27872.html