1、前言
STRUTS是標準的"模型2"的WEB應用框架,其中的ActionServlet代表了"模型2"MVC設計模式中的"控制器" .STRUTS應用程序一般使用jsp代碼生成用戶界面,這些代碼不包括任何商業邏輯,代表了MVC中的“VIEW”部分。需要執行商業邏輯的用戶界面中的表單或超鏈將會由"控制器" ActionServlet接收和處理。在STRUTS中,只有一個ActionServlet實例,這個實例將接收和處理應用中的相關用戶交互請求。ActionServlet實例將選擇和調用相應的ACTION類來處理商業邏輯。在設計模式上,ACTION類被稱為“控制輔助者”,它將修改javaBeans,這些JavaBeans就是MVC中的“ model”部分。本文將分析在STRUTS中進行模塊化編程的具體細節。
2、樣例描述
我們將作一個模塊編程的例子,這個例子包括三個模塊,缺省模塊、registration模塊和apPRoval模塊。缺省模塊下有資源index.Html,我們使用它來連接其它兩個模塊。registration模塊和approval模塊的編程類似,都包含一個index.jsp和一個結果jsp:result.jsp.下面是目錄結構:
目錄結構表明,struts的模塊由配置文件、java類(這里者action和form類)和資源文件構成,另外各模塊可以共享web.xml,message (這里是applicatonResources.properties)文件。
我們的例子的界面交互圖可以表示如下:
缺省模塊的index.html包括兩個鏈接,分別連接兩個模塊的index.jsp資源,registration模塊的index.jsp提交后,假如驗證失敗會重新返回到該模塊的index.jsp,否則用資源resultok.jsp顯示注冊成功的結果。模塊approval的index.jsp提交后進入到resultok.jsp的界面,顯示批準與否的結果。
我們從應用程序的文件組成和交互兩方面的模塊情況對我們要實現的例子進行了比較清楚的組織,下面我們講解如何在struts中實現模塊化編程。
3、STRUTS的模塊化機制
我們將講解STRUTS的相關配置,這些配置大部分與模塊化編程有關系,有些沒關系但對理解STRUTS程序有利。
3.1 ActionServlet參數
ActionServlet有好多參數可供設置,STRUTS在WEB應用部署描述符中定義這些參數:
·Config——逗號相隔的應用上下文相對的配置文件的路徑,這些配置文件包含了STRUTS WEB應用的缺省模塊的設置。缺省值為 /WEB-INF/struts-config.xml;
·config/${module} -逗號相隔的應用上下文相對的配置文件的路徑,這些配置文件包含了STRUTS WEB應用的${module}模塊的設置。這個模塊的前綴是/${module},多個config/${module}參數定義了多個STRUTS WEB應用模塊;
·convertNull - 假如這個參數的值為 true, 數值型Java 包裝類(比如java.lang.Integer)的初始值將會是null,而不是0.缺省值[false]
·rulesets-逗號相隔的附加的org.apache.commons.digester.RuleSet列表,Digester在分析配置文件時,除了針對標準的配置元素的RuleSet之外,還會利用這些對象來分析配置文件,這樣提供了一個配置擴展機制……
·validatin - 指示我們是否使用驗證型的XML分析器來處理配置文件,缺省值為 [true]
3.2 配置文件
我們說STRUTS針對每個模塊可以有一個或多個配置文件,這些配置文件使用XML來書寫,下面是標準的配置文件XML的元素解釋。
新聞熱點
疑難解答