
1.1 配置Sturts 2运行环境
经过多年的发展,Struts 1已经成为一个高度成熟的框架,其稳定性和可靠性都得到了广泛的证明。市场占有率超过20%,拥有众多的拥,几乎成为工业标准。但是随着时间的流逝,技术的进步,Struts 1的局限性也越来越多地暴露出来,并且制约了Struts 1的继续发展。
目前,Struts已经分化成两个框架:第一个是在传统的Struts 1的基础上,融合了另一个优秀的Web框架WebWork的Struts 2。Struts 2虽然是在Struts 1的基础上发展起来的,但是其实质上是以WebWork为核心的。Struts 2为传统的Struts 1注入了WebWork的先进的设计理念,统一了Struts 1和WebWork两个框架。Struts 1分化出来的另外一个框架是Shale。这个框架远远超出了Struts 1原有的设计思想,与原有的Struts 1关联很少,使用了全新的设计思想。Shale更像一个新的框架而不是Struts 1的升级。本书主要学习Struts 2框架。
要使用Struts 2框架进行Web开发或者运行Struts 2程序,就必须先配置Struts 2的运行环境。
配置Struts 2运行环境首先就是配置JDK环境变量,然后下载安装Struts 2框架。至于Web服务器,则选择开源的Tomcat。上述准备工作完成后,在下一节将使用Struts 2进行一个简单实例的开发。
访问Java官方网站http://java.sun.com,可以直接下载JDK。JDK的安装很简单,这里不再叙述。在安装和配置JDK后,配置JDK环境变量,然后就可以安装Java Web服务器了。Tomcat服务器的官方网站是http://tomcat.apache.org/。该网站提供了Tomcat的直接使用版和安装版的下载链接,目前最新版本是Tomcat 7.x。
Struts的官方网站http://struts.apache.org/,提供了Struts 2框架的下载链接,目前最新版本是Struts 2.x。下载时有多个选项可供选择,本书选择Full Distribution选项,即Struts 2的完整版。
下载完毕后,将下载的压缩包进行解压,然后找到lib文件夹。该文件夹内存放的就是Struts 2的核心库和第三方插件库,开发Struts 2需要的API就是这些类库,也就是把需要的相关类库复制到Web应用的WEB-INF/lib文件夹中。这里把struts2-core-2.2.1.jar、xwork-2.2.1.jar、freemarker-2.3.1.jar、commons-fileupload-1.2.1.jar以及commons-logging-1.0.4.jar复制到Web应用的WEB-INF/lib文件夹中,这几个包的作用如下所示。
- Struts 2-core-2.2.1.jar:Struts 2的核心库。
- xwork-2.2.1.jar:WebWork的核心库。
- ognl-3.0.jar:OGNL表达式语言,Struts 2支持该EL表达式。
- freemarker-2.3.16.jar:表现层框架,定义了Struts 2的可视组件主题。
- commons-logging-1.0.4.jar:日志管理
- commons-fileupload-1.2.1.jar:文件上传与下载
注意
由于Struts 2的版本不同,分发包中的目录结构及类库可能不相同,但变化不大。
也可以使用MyEclipse自带工具加载Struts 2框架,如图1-1所示。

图1-1 MyEclipse添加Struts框架
添加Struts框架支持后,选择Struts 2框架,如图1-2所示。

图1-2 选择Struts 2框架
加载完成后,自动添加了Struts 2所需jar包,如图1-3所示。

图1-3 加载完成