第1.6式. 管理Struts 配置文件
問題
你需要在Struts配置文件中避免拼寫和其他低級錯誤,以及使得編輯和管理它們更容易些。
動作要領
使用Struts Console,或者其他IDE工具來查看、編輯和管理Struts 配置文件。
動作變化
Web應用中最常見的錯誤原因之一就是拼寫錯誤。總體而言,大多數(shù)現(xiàn)代軟件包括Struts 都依賴于某種ASCII文本格式的配置文件和部署描述符,通常是XML。使用能夠進行校驗的XML 編輯器能夠有助于減少錯誤,但是,它卻不能消除路徑、form-bean名稱、類名等的拼寫和鍵入錯誤。
你可以從http://www.jamesholmes.com下載Stuts Console,它提供了對Struts (struts-config.xml), Validator (validation.xml a和validator-rules.xml), 和Tiles (tiles-defs.xml) 配置文件的圖形化編輯。不需要進行手工編輯,你可以使用Struts Console 提供的基于Swing的編輯器進行。除了減少了輸入錯誤, Struts Console 還使你對這些文件有一個直觀和總體的視圖。你將發(fā)現(xiàn)這些特征在你的配置文件開始變得龐大的時候簡直是妙不可言。
Struts Console 提供了一個聰明的圖形編輯器來處理Struts開發(fā)中所用的各種XML配置文件。Figure 1-2是struts-example應用的struts-config.xml文件的視圖。
Figure 1-2. Struts Console 中查看Struts 示例應用

Editor tab 表現(xiàn)為兩個面板。左邊pane 包含一個組成配置文件的元素的樹形視圖。右邊則是圖形化編輯窗口。不同的編輯器將取決于所選擇的元素。在Figure 1-2中,在視圖中選擇了/saveSubscription action mapping ,右邊則顯示了特的配置細節(jié),并可以編輯它。
配置文件的XML源代碼可以在一個只讀的窗口中顯示,可以通過選擇Source tab 來打開它。你在圖形環(huán)境中所作的修改,都可以同步反映在源代碼中。當然,除非你保存文件,它不會提交進行保存。

|
因為Struts Console解析和管理實際的XML 數(shù)據(jù),當重新保存文件時,它不會在原始文件中包含任何定制格式化和注釋信息。 |
Struts Console 不同于常規(guī)的XML editor 之處是Struts console 能夠理解元素之間如何關聯(lián)。例如,在Figure 1-2, 有效可用的Form Beans 可以使用下拉列表來顯示。點擊Form Bean 下拉列表右邊的View 按鈕將顯示選定的Forms 定義。Form Bean 編輯器將顯示出來,而左邊pane的樹形視圖將被更新以反映正在查看的Form Bean。
目前, Struts Console Version 4.4.1支持下列文件的編輯和創(chuàng)建:
- Struts 配置文件( Struts 1.2, 1.1, 和 1.0); 即, struts-config.xml
- Tiles 配置文件;即tiles-defs.xml
- Validator 配置文件( Struts 1.1, 和 1.0);即, validator-rules.xml, validation.xml
- JSP Tag Library Descriptor (TLD) (JSP Version 1.2, 1.1);即, struts-html.tld
除了將它用作一個標準的程序之外,Struts Console 還可以插入到大多數(shù)Java IDE中,比如Eclipse, NetBeans, 和IntelliJ IDEA。
使用任何圖形編輯器之前,最好是要熟悉和理解Struts 配置文件中的結(jié)構(gòu)和元素的含義。只有這樣,你才可以使用工具來隱藏具體的結(jié)構(gòu)而作你想做的事情。這有點類似于你心學習一種編程語言的時候,在依賴于IDE之前,還是最好使用簡單的文本編輯器和命令行工具。最然圖形化工具能夠減少你調(diào)試的精力和時間,你也需要理解文件的基本結(jié)構(gòu),以便能夠發(fā)生錯誤是找出具體原因。
相關動作
James Holmes的站點可以下載Struts Console。這個站點還提供其他Struts Console的詳細資料。James 還開發(fā)其他工具,比如Spring Console。http://www.jamesholmes.com.
Struts 1.2 包括了一個plug-in, 即ModuleConfigVerifier,它用來捕捉應用初始化時發(fā)生的配置錯誤。關于此插件的詳細信息,參見http://struts.apache.org/api/org/apache/struts/plugins/ModuleConfigVerifier.html.
MyEclipse 是Eclipse IDE的一個定制化版本。這個漂亮的IDE提供了一個精心裁減的J2EE 應用開發(fā)環(huán)境。目前,最新的 MyEclipse 已經(jīng)支持Eclipse 3.0。但是MyEclipse 不是免費的,年訂閱費大概是不到$50 。如果你想要一個一站式的IDE,它還是值得的。可訪問http://www.myeclipse.com.
Struts Studio 也是一個非常雄心勃勃的開發(fā)工具,視圖提供商業(yè)級的Struts開發(fā)工具。可訪問,http://www.exadel.com/products_strutsstudio.htm.
另外,M7的Nitrox也是非常優(yōu)秀個開發(fā)工具。www.M7.com
商業(yè)IDE幾乎全部提供Struts的開發(fā)工具和環(huán)境,包括:IBM的WebSphere Application Developer Studio, WebSphere Site Developer Studio, Oracle 的JDeveloper , Borland JBuilder, BEA Weblogic Workshop。其中, oracle 和 Bean本身對Struts作了一些擴展和定制化。可以訪問個公司的網(wǎng)站獲得詳細信息。