struts1 和 struts2 的比较
2008-08-06 09:30
Struts 作为 MVC 2 的 Web 框架,自推出以来不断受到开发者的追捧,得到广泛的应用。作
为最成功的 Web 框架,Struts 自然拥有众多的优点:MVC 2 模型的使用、功能齐全的标志库
(Tag Library)、开放源代码。
但是,正所谓“没有最好,只有更好”,Struts1.x 自身也有不少的缺点:需要编写的代码过
多,容易引起“类爆炸”、单元测试困难。这些缺点随着 Web 的发展越来越明显。这就促生了
Struts 2,它的诞生能很好的解决上述问题。
在本文中,笔者将对 Struts2 和 Struts1.x 这两种框架进行详细的比较。比较将涉及到这两种
框架的 Action、验证、类型转换及如何开发等方面的内容。希望通过这样的比较,让读者了
解这两种框架各自的特点,以便于在自己的项目中,根据实际情况,尽快的过渡到 Struts2
的时代。本文的内容基于 Struts2.0.6。
一、 引言
Struts 的第一个版本是在 2001 年 5 月份发布的。它的最初设想是通过结合 JSP 和 Servlet,使
Web 应用的视图和业务/应用逻辑得以清晰地分离开来。在 Struts 之前,最常见的做法是在
JSP 中加入业务和应用逻辑,或者在 Servlet 中通过 println()来生成视图。
自从第一版发布以来,Struts 实际上已成为业界公认的 Web 应用标准。它的炙手可热也为自
己带来了改进和变更,所以不但要跟上对 Web 应用框架不断变化的需求,而且要与日渐增
多竞争激烈的众多框架的特性相融合。
到最后,产生了几个下一代 Struts 的解决方案。其中两个最受瞩目的方案是 Shale 和 Struts
Ti。Shale 是一个基于构件的框架,并在最近成为 Apache 的顶级项目。而 Struts Ti 则是在
Struts 的成功经验基础上继续坚持对前端控制器(Front Controller)和 MVC(model-view-
controller)模式进行改进。
WebWork 项目是在 2002 年 3 月发布的,它对 Struts 式框架进行了革命性改进,引进了不少
新的思想、概念和功能,但和原 Struts 代码并不兼容。WebWork 是一个成熟的框架,经过了
好几次重大的改进与发布。
在 2005 年 12 月,WebWork 与 Struts Ti 宣布合并。与此同时,Struts Ti 改名为 Struts Action
Framework 2.0,成为 Struts 真正的继承者。
最后要注意的是,并不是说 Struts 或 WebWork 项目已经停止开发了。由于人们对这两个项目
的兴趣仍然很高,而且也有很多开发者仍然愿意使用它们,因此这两个项目还在继续开发