在學習的過程中,一直對webWork和struts的關系不是很清楚,今天打算從網上找找看看,他們究竟有什么樣的區別和聯系,
下面是從網上找到的一篇關于他們的文章,寫的挺多錯的,打算收藏下來。
首先讓我們來了解一下Web框架。
Web框架主流上分為兩類:MVC框架和事件響應機制框架。MVC框架有Struts,Webwork,Spring MVC,以及一些基于這些框架的框架,如Spring Webflow, 如基于Struts的Beehive等;事件框架有JSF,Tapestry,Echo等。除此之外,還有一些連接兩者的框架,如Struts Shale等。
由上面我們知道了Struts和Webwork同為服務于Web的一種MVC框架,下面我們著重說說Struts與WebWork它們各自的發展及它們的關系問題。
Struts的第一個版本是在 2001年5月份發布。它提供了一個Web應用的解決方案,如何讓 JSPs 和 servlets 共存去提供清晰的分離視圖和業務和應用邏輯的架構。在Struts之前,最通常的做法是在JSP中加入業務和應用邏輯,或者在servlets中生成視圖。
自從第一個版本的發布, Struts 實際上已成為業界公認的Web應用標準。但隨著時間的推移,Web應用框架經常變化的需求,產生了幾個下一代 Struts的解決方案。其中兩個可選方案是Shale 和 Struts Ti。 Shale 是一個基于構建的框架,并已成為 Apache 中的重要項目。而 Struts Ti 則是繼續堅持 MVC模式的基礎上改進,繼續Struts的成功經驗。
WebWork項目是在2002年3月發布的,它對Struts式框架進行了革命性改進,引進了不少新的思想,概念和功能,但和原Struts代碼并不兼容。WebWork是一個成熟的框架,經過了好幾次重大的改進與發布。
對于開發人員來說,如此多的框架,過多的選擇是一種沉重的負擔,不但需要花更多的時間去學習,也需要更多的時間去維護基于不同框架的代碼。
又由于面臨著當時dotnet統一的web框架webforms以及異軍突起的rails的強勢挑戰,Java業界也感受到競爭的絲絲寒意,因此,眾多Java Web框架的核心開發人員終坐到了一起,商量著Web框架的統一和互操作的問題。
經過一段時間的討論,Struts,Webwork和beehive三方宣布合并,共同發展下一代MVC模式的MVC框架……Struts Ti。它將主要以Webwork為核心,集成Beehive的annotataion和pageflow功能,推向Struts用戶群體,并且加強和JSF的集成能力。
在2005年12月,WebWork與Struts Ti決定合拼, 再此同時, Struts Ti 改名為 Struts Action Framework 2.0,成為Struts真正的下一代。
之后它們各自官方的說法分別是:WebWork是由OpenSymphony開發的MVC模式的J2EE Web框架。 目前已經捐獻給Apache組織繼續開發,命名為Struts2;而Struts則說“Struts 2 was originally known as WebWork 2. After working independently for several years, the WebWork and Struts communities joined forces to create Struts 2.”即大意為“Apache Struts 2即是之前大家所熟知的WebWork 2。在經歷了幾年的各自發展后,WebWork和Struts社區決定合二為一,也即是Struts 2。”
Struts與WebWork都為WEB框架,或多或少都有異同之處,以上只是表面上的一個關系,具體內部的應用將在以后深入學習應用后給出。