來源:http://caterpillar.onlyfun.net/gossip/struts/moduleunit.htm
struts中很多設定都是在struts-config.xml中加以設定,在大型網站的開發中,有很多小團隊會負責不同的模組,如果每乙個團隊都要對struts-config.xml進行設定,將會導致struts-config.xml的版本控制問題。
在struts 1.1中,您可以為不同的模組分配不同的struts-config.xml設定檔,方法是在actionservlet的config引數後加上字尾字,例如將使用者登入的工作切分為login模組,則可以這麼在web.xml中設定:
...action
org.apache.struts.action.actionservlet
config
/web-inf/conf/struts-config.xml
config/login
/web-inf/conf/struts-config-login.xml
2 ...
onfig/login指定了login模組所使用的設定檔struts-config-login.xml,現在 login模組的開發人員只要專心於自己的開發與設定檔,就如同之前的主題一般的設定,當actionservlet收到請求時,它是根據模組字首來了解 該使用哪乙個模組,例如:
........
則所有的path設定會自動被加上login字首,例如必須使用以下的路徑才可以正確的請求到adminloginaction:
在模組中的 action 在查詢forward時,都是以所在的模組查詢對應的struts-config-***.xml,例如上例的adminloginaction執行中查 找forward時,則會查詢struts-config-login.xml中的forward,也就是說,模組中forward物件的查詢預設都是相 對於模組路徑,而不是相對於context路徑。
那麼如何從目前的模組轉換到另乙個模組?
當您的應用程式分作多個模組時,在使用者點選某個鏈結時,您有兩個方法可以在模組之間切換,第乙個方法是使用相對於context的路徑來進行 forward 查詢,您可以在當前的模組所使用的struts-config-***.xml中設定,例如在struts-config-login.xml中加入:
....
name="switchmoduletosystem"
contextrelative="true"
path="/system/index.do"
redirect="true"/>
....
這是在全區可查詢的forward中的設定,在標籤中也可以像上面一樣使用標籤,,例如:
....
name="switchmoduletoprofile"
contextrelative="true"
path="/profile/personalinfo.do"
redirect="true"/>
....
另一切換模組的方法就是使用switchaction,它需要在請求中帶兩個引數,乙個是prefix,用來指定模組字首名稱,乙個是page,用來指定相對於模組的資源路徑,例如可以這麼設定:
....
path="/switchmodule"
type="org.apache.struts.actions.switchaction "/>
....
什麼是模組化?模組化的好處
1.高內聚低耦合,有利於團隊作戰,當專案很複雜的時候,將專案劃分為子模組分給不同的人開發,最後再組合在一起,這樣可以降低模組與模組之間的依賴關係體現低耦合,模組又有特定功能體現高內聚。2.可重用,方便維護,模組的特點就是有特定功能,當兩個專案都需要某種功能的時候,我們定義乙個特定的模組來實現該功能,...
什麼是模組化?模組化怎麼實現?
前言 增加印象,留下腳印 忘記還可以翻一翻 奧利給。1,什麼是模組化 公司裡乙個專案是有很多程式設計師一起開發的,例如 多人運動 這個專案 有程式設計師a 程式設計師b 程式設計師c 程式設計師a 寫了 aaa.js 裡面有幾千行 幾萬行 程式設計師b 寫了 bbb.js 裡面有幾千行 幾萬行 程式...
什麼是模組化?模組化的好處
什麼是模組化?j a 應用架構設計 模組化模式與 osgi 一書中對它的定義是 模組化是一種處理複雜系統分解為更好的可管理模組的方式。所謂的模組化開發就是封裝細節,提供使用介面,彼此之間互不影響,每個模組都是實現某一特定的功能。模組化開發的基礎就是函式。模組化開發使 耦合度降低,模組化的意義在於最大...