Struts從0開始6: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資源。模塊化決絕了我們開發中的不少問題吧,希望能幫助您解決一些問題,嘿嘿,加油吧……

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