前提是:Struts1.x和Struts2.x沒有任何的關系,屬于兩個獨立的版本,那麼為什麼會出現兩個獨立的版本原因還是在于Struts1.x的設計結構上.在成名的MVC開發架構裡面,Struts最早出現的,但是由于最初的設計環境沒有考慮到這麼複雜,是以來講到了今天與其他架構整合會出現非常麻煩的問題,而且也存在有性能問題,同時自己本身的設計結構也出現了混亂,例如:如果想要使用驗證架構(無用)那麼必須使用第三方擴充包的形式,或者說如果要将對象執行個體交由Spring管理,那麼也需要以插件的形式出現.
這種種的一切幾乎都在暗示着,Struts1.x無法勝任與今天的開發,但是這個時候Apache也并沒有開發Struts2.x.任何食物的發展都是相生相克的.Struts1.x發展帶來了架構的繁榮,那麼這個繁重之後在某一個"角落"裡面慢慢生長出一個新的架構==WebWork(ww),最早在整個Java行業裡面有一個特别著名的開源項目--JIVE論壇,它融合了一個特别有意思的特點--使用目前最新的開發技術,而WebWork就正好應用在此處,而随着Struts1.x的缺陷,越來越明顯,而Web'Work的優勢越來越突出,長此以往下去,Struts1.x已經丢失了大量的開發者,很多的開發者都轉向了WebWork,它比Struts1.x優秀在以下幾點:
●避免了Sturs1.x之中ActionForm類與Action類必須存在的窘境;
●在WebWork發展的時候考慮到了與第三方架構的整合,是以它可以輕松的實作與Spring的整合,
●WebWork的配置更加的靈活;
●在驗證架構部分要比Struts1.x更加容易(這個也沒有什麼用)
在2005年的時候,Apche收購了WebWork項目,因為WebWork足夠好用,但是沒有Sturuts的名氣大,而Stuts本身問題很多,那麼需要重新開發,是以Struts1.x的名氣+WebWork的實幹=Struts2.x,而在收購初期,Struts2.x并沒有對WebWork做更多的修改,但是千萬要記住從2005年JDK1.5出現了,而JDK1.5出現所帶來的行業内的巨大變革在于Annotation的技術應用,在Sturts2.x裡面全面支援Annocation的配置以簡化程式的編寫.
Struts2.x的基礎是WebWork,但是請千萬要記住一件事情,WebWork的起源也很早,隻不過它憑借着自己的超前的結構設計,才可以在今天繼續發揮餘熱,但是Struts1.x,Struts2.x,JSF等等,随着時間的沉澱,會依然發現不如Spring MVC的設計更加優秀,
所有的架構設計思想直來源于一點--反射機制,如果再有其他的核心技術也就是XML+DOM4J.
總結
架構的學習不在于使用,而在于了解它的設計思想.