1.1 Struts 2简史

在真正开始使用Struts 2之前,可以先来了解一下它的发展历程。

● Struts 1简介

Struts 1是世界上第一个发布的MVC框架,于2001年6月面市,发布之后便得到广泛拥戴。对于Struts l框架而言,因为它与JSP、Servlet耦合得非常紧密,因而出现了许多不可避免的缺陷,随着Web应用的广泛推广,这些缺陷逐渐变成制约Struts 1发展的重要因素。Struts 1的缺陷主要有以下几点:

(1)支持的表现层(也称表示层)技术单一,只支持JSP作为表现层技术,对于目前的很多Web应用而言,并不一定使用JSP作为表现层技术。

(2)与Servlet API紧密耦合,难以测试。

(3)代码编写严重依赖于Strutsl API,属于侵入式设计。

● WebWork简介

WebWork是在2002 年3 月首次发布的MVC框架,相对于Struts l存在的那些不足,WebWork则更加优秀。它采用了一种松耦合的设计,让Web应用的Action处理不再与Servlet API耦合,使单元测试更加方便。

WebWork支持更多的表现层技术,如Velocity、FreeMarker和XSLT等。WebWork 2使用OGNL(Object-Graph Navigation Language)这种强大的表达式语言,支持对ValueStack(值栈)的访问,对集合和索引属性的支持非常强大。经过几年的发展,WebWork技术日趋成熟。

● Struts 2简介

2005年12月,WebWork与Struts决定合并,发展Struts下一代产品Struts 2。Struts 2虽然是在Struts 1的基础上发展起来的,但实质上是以WebWork为核心。Struts 2为传统Struts 1注入了WebWork的设计理念,统一了Struts l和WebWork两个框架,允许Struts l和WebWork开发者同时使用Struts 2框架。