風(fēng)行天下

          JAVA太極
          posts - 4, comments - 10, trackbacks - 0, articles - 55
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

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

          首先我們需要建立一個(gè)web的項(xiàng)目,接下來就要進(jìn)行目錄規(guī)劃。如下圖:

          1 首先確定項(xiàng)目的模塊,如此項(xiàng)目中包含兩個(gè)模塊:mFirst和mSecond,當(dāng)然還有缺省模板。

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

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

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

          5 接下來我們只需在web.xml中進(jìn)行模塊聲明即可,其他信息請(qǐng)參考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目錄下,而不是在根目錄下直接建立模板目錄,所以必須設(shè)置forwardPattern,詳細(xì)信息請(qǐng)參考Struts文檔。請(qǐng)?jiān)诿總€(gè)模塊的struts-config.xml文件中添加以下代碼,在本例中為:
          <controller forwardPattern="/WEB-INF/webpages/$M$P"/>
          在每個(gè)模塊的properties資源文件中可能都有配置Struts默認(rèn)的出錯(cuò)信息,因?yàn)檫@些模塊都是獨(dú)立的。

          7 接下來就是模塊的之間的切換問題,因?yàn)樵诂F(xiàn)時(shí)過程必須需要解決的問題。其實(shí)很簡(jiǎn)單,如果你想使用項(xiàng)目下絕對(duì)路徑(包含模塊目錄信息),只需將forward的contextRelative屬性值設(shè)置為true即可,這樣模塊之間切換也很容易實(shí)現(xiàn)。
          <forward contextRelative="true" name="success"
          path="/mSecond/second.do" redirect="false"/>

          8 接下來就是你的代碼啦,可能你要在編碼中適當(dāng)?shù)乜紤]到項(xiàng)目模塊之間的關(guān)系。

          總結(jié):多模塊設(shè)計(jì)不太難,但是你也的考慮周全點(diǎn),這樣會(huì)給你的開發(fā)帶來方便。在IntelliJ IDEA下,雖然在模塊比較多的情況下目錄很亂,通過設(shè)置excluded,讓你的目錄更整潔,這樣就可以關(guān)注你的模塊。在有些情況下,取消excluded,這樣你有可以把握項(xiàng)目全局。


          評(píng)論

          # re: Struts的多模塊設(shè)計(jì)  回復(fù)  更多評(píng)論   

          2005-09-26 13:47 by angel
          請(qǐng)問樓主是否有多模塊應(yīng)用的例子,
          若有且方便,煩請(qǐng)發(fā)一份給我,越簡(jiǎn)單越好。
          謝謝!
          oaohome1996@163.com

          # re: Struts的多模塊設(shè)計(jì)  回復(fù)  更多評(píng)論   

          2006-01-08 15:59 by Kaywa
          能發(fā)份多模塊的示例給我嗎, 多模塊老是做不出來, 挺郁悶的

          謝謝!

          swpnik@gmail.com

          # re: Struts的多模塊設(shè)計(jì)  回復(fù)  更多評(píng)論   

          2006-02-21 12:54 by smallfox007
          我也想要多模塊設(shè)計(jì)的例子 能否發(fā)給我!smallfox007@hotmail.com

          # re: Struts的多模塊設(shè)計(jì)  回復(fù)  更多評(píng)論   

          2006-08-02 14:49 by 水止風(fēng)揚(yáng)
          struts-examples 就是個(gè)好例子

          # re: Struts的多模塊設(shè)計(jì)[未登錄]  回復(fù)  更多評(píng)論   

          2007-05-06 16:57 by h
          是否可以把工程的目錄展示一下??
          如果可以給我一份
          heliyun03061138@163.com

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 花莲县| 来宾市| 萨嘎县| 柳江县| 綦江县| 获嘉县| 疏附县| 肥城市| 卢龙县| 昌乐县| 河北省| 肇源县| 营山县| 内丘县| 二连浩特市| 乌审旗| 乌拉特后旗| 罗源县| 青州市| 林口县| 扶余县| 肥东县| 黑山县| 集贤县| 辽阳县| 张掖市| 桂东县| 湘潭市| 象山县| 沁源县| 芮城县| 太白县| 阳江市| 昌图县| 县级市| 安丘市| 蓬安县| 久治县| 惠安县| 福海县| 隆尧县|