Struts 2的发展历史

经过六年多的发展,Struts1已经成为一个高度成熟的框架,其稳定性和可靠性得到了广泛的证明。超过20%的市场份额,丰富的开发人群,几乎成为事实上的行业标准。但是随着时间的推移和技术的进步,Struts1的局限性越来越暴露出来,制约了Struts1的继续发展。

对于Struts1框架,由于其与JSP/Servlet的紧密耦合,导致了一些严重的问题。首先,Struts1支持单表示层技术。由于Struts1出现较早,当时还没有FreeMarker、Velocity等技术,所以无法与这些视图层的模板技术集成。其次,Struts1和Servlet API之间的严重耦合使得应用程序难以测试。最后,Struts1代码严重依赖Struts1 API,这是一个侵入式框架。

从目前的技术水平来看,和Struts1竞争的视图层框架有很多,比如JSF、Tapestry、spring MVC。这些框架都是比较新的,应用了最新的设计理念,同时吸收了Struts1的经验,克服了很多缺点。这些框架的出现也促进了Struts的发展。

Struts已经分为两个框架:第一个是Struts2,它是基于传统的Struts1,集成了另一个优秀的Web框架WebWork。Struts 2虽然是在Struts1的基础上开发的,但本质上是基于WebWork的。Struts2在传统的Struts1中注入了WebWork的先进设计理念,统一了Struts1和WebWork两个框架。

另一个区别于Struts1的框架是Shale。这个框架远远超出了Struts1最初的设计思路,与原来的Struts1联系不大,采用了全新的设计思路。Shale更像是一个新的框架,而不是Struts1的升级。