基於Web的MVC framework在JEE的世界內已是空前繁榮TTS網站上幾乎每隔一兩個星期就會有新的MVC框架發布目前比較好的MVC老牌的有StrutsWebwork新興的MVC框架有Spring MVCTapestryJSF等這些大多是著名團隊的作品另外還有一些邊緣團隊的作品也相當出色如DinamicaVRaptor等這些框架都提供了較好的層次分隔能力在實現良好的MVC 分隔的基礎上通過提供一些現成的輔助類庫同時也促進了生產效率的提高
如何選擇一個好的框架應用在你的項目中將會對你的項目的效率和可重用是至關重要的本文將對目前最流行最常用的兩種framework進行介紹
一Struts
Struts是Apache軟件基金下Jakarta項目的一部分Struts框架的主要架構設計和開發者是Craig RMcClanahanStruts是目前Java Web MVC框架中不爭的王者經過長達五年的發展Struts已經逐漸成長為一個穩定成熟的框架並且占有了MVC框架中最大的市場份額但是Struts某些技術特性上已經落後於新興的MVC框架面對Spring MVCWebwork 這些設計更精密擴展性更強的框架Struts受到了前所未有的挑戰但站在產品開發的角度而言Struts仍然是最穩妥的選擇
Struts有一組相互協作的類(組件)Serlvet以及jsp tag lib組成基於struts構架的web應用程序基本上符合JSP Model的設計標准可以說是MVC設計模式的一種變化類型根據上面對framework的描述我們很容易理解為什麼說Struts是一個web framwork而不僅僅是一些標記庫的組合但 Struts 也包含了豐富的標記庫和獨立於該框架工作的實用程序類Struts有其自己的控制器(Controller)同時整合了其他的一些技術去實現模型層(Model)和視圖層(View)在模型層Struts可以很容易的與數據訪問技術相結合包括EJBJDBC和Object Relation Bridge在視圖層Struts能夠與JSP Velocity TemplatesXSL等等這些表示層組件想結合
Struts的體系結構
struts framework是MVC 模式的體現下面我們就從分別從模型視圖控制來看看struts的體系結構(Architecture)
從視圖角度(View)
主要由JSP建立struts自身包含了一組可擴展的自定義標簽庫(TagLib)可以簡化創建用戶界面的過程目前包括Bean TagsHTML TagsLogic TagsNested TagsTemplate Tags這幾個Taglib有關它們的詳細資料請參考struts用戶手冊
從模型角度(Model)
模型主要是表示一個系統的狀態(有時候改變系統狀態的業務邏輯操作也劃分到模型中)在Struts中系統的狀態主要有ActiomForm Bean體現一般情況下這些狀態是非持久性的如果需要將這些狀態轉化為持久性數據存儲Struts本身也提供了Utitle包可以方便的與數據庫操作
從控制器角度(Controller)
在Struts framework中Controller主要是ActionServlet但是對於業務邏輯的操作則主要由ActionActionMappingActionForward這幾個組件協調完成(也許這幾個組件應該劃分到模型中的業務邏輯一塊)其中Action扮演了真正的業務邏輯的實現者而ActionMapping和ActionForward則指定了不同業務邏輯或流程的運行方向
對於Struts 如何控制處理客戶請求讓我們通過對struts的四個核心組件介紹來具體說明這幾個組件就是ActionServletAction ClassesAction Mapping(此處包括ActionForward)ActionFrom Bean
[] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29176.html