Struts的多模塊設計

Struts在1.1以後的版本引入了模塊(Module)的概念,克服了1.0的並行開發所遇到的問題。但是模板的規劃往往又是比較麻煩,如果不注意,可能適得其反,影響你的開發速度。下面我們看看如何去規劃一個對模塊的Struts項目。

首先我們需要建立一個web的項目,接下來就要進行目錄規劃。如下圖:
 

 

1 首先確定項目的模塊,如此項目中包含兩個模塊:mFirst和mSecond,當然還有缺省模板。

2 本例子中考慮到使用XDoclet自動生成Struts配置和校驗文件,所以有些特殊性。在WEB-INF下建立兩個目錄mFirst和mSecond,用於模塊配置文件的存放。同時建立merge目錄,幷包含相應的模塊目錄,主要存放XDoclet生成Struts配置文件所需要的合併文件。模板的java源碼和測試代碼也分別存放,這樣便於管理。爲了包含某些不允許從瀏覽器端直接訪問的jsp文件,我們在WEB-INF下同時建立webpages目錄,該目錄下同時包含模塊目錄,主要存放各個模塊的受限文件。

3 本例中爲了集成方便,所有編譯後的代碼均存在同一目錄下(WEB-INF\classes),編譯後的測試代碼同樣存在同一目錄下。

4 經過以上的設置,爲XDoclet生成配置文件提供了方便,我們的原則是同一個模塊只有一個配置文件(struts-config.xml)和校驗文件(validation.xml)。

 

 

5 接下來我們只需在web.xml中進行模塊聲明即可,其他信息請參考struts的sample。

<init-param>

<param-name>config</param-name>

<param-value>WEB-INF/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>config/mFirst</param-name>

<param-value>WEB-INF/mFirst/struts-config.xml</param-value>

</init-param>

<init-param>

<param-name>config/mSecond</param-name>

<param-value>WEB-INF/mSecond/struts-config.xml</param-value>

</init-param>

6 完成這些信息以後,我們要注意一些事情:

struts-config.xml文件中的Controller聲明,由於我們將模板的jsp文件隱藏到WEB-INF目錄下,而不是在根目錄下直接建立模板目錄,所以必須設置forwardPattern,詳細信息請參考Struts文檔。請在每個模塊的struts-config.xml文件中添加以下代碼,在本例中爲:

<controller forwardPattern=”/WEB-INF/webpages/$M$P”/>

在每個模塊的properties資源文件中可能都有配置Struts默認的出錯信息,因爲這些模塊都是獨立的。

7 接下來就是模塊的之間的切換問題,因爲在現時過程必須需要解決的問題。其實很簡單,如果你想使用項目下絕對路徑(包含模塊目錄信息),只需將forward的contextRelative屬性值設置爲true即可,這樣模塊之間切換也很容易實現。

<forward contextRelative=”true” name=”success”

path=”/mSecond/second.do” redirect=”false”/>

8 接下來就是你的代碼啦,可能你要在編碼中適當地考慮到項目模塊之間的關係。

總結:多模塊設計不太難,但是你也的考慮周全點,這樣會給你的開發帶來方便。在IntelliJ IDEA下,雖然在模塊比較多的情況下目錄很亂,通過設置excluded,讓你的目錄更整潔,這樣就可以關注你的模塊。在有些情況下,取消excluded,這樣你有可以把握項目全局。

發佈了76 篇原創文章 · 獲贊 0 · 訪問量 4929
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章