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