2.1 搭建Struts开发环境
为了给读者展示一个HelloWorld示例,引导读者在自己的计算机中搭建一个Struts 2开发环境。
针对读者群的不同,搭建环境也进行了分类:Java初学者可以使用最基本的开发环境,使用JDK和文本编辑器来学习Struts 2,这样可以使初学者能够更加深刻理解技术方面的细节所在,加深对Struts 2框架体系的认识,真正学会技术的精髓。
而对于有过Struts 1或者WebWork开发经验的读者,完全可以使用流行的IDE环境来学习开发,这样会大大提高代码编写的效率,节省学习时间。另外,熟练的IDE使用能力也会让读者在实际开发工作中更好地融入开发团队。
★ 提示 ★
笔者在这里建议使用最基本的开发环境,这样可以避免出现频繁更换IDE集成开发工具带来的困扰。
.......这里有安装jdk,tomcat等部分,此次省略........直接从安装struts 2开始
2.1.4 安装Struts 2
进入Struts 2的官方网站下载地址:http://struts.apache.org/download.cgi,界面如图2.7所示。下载界面中有如面选择:
Full Distribution:下载Struts 2的完整版。通常建议下载该选项。
Example Applications:下载Struts 2的示例应用,这些示例应用对于学习Struts 2有很大的帮助。
Blank Application only:仅下载Struts 2的空示例应用。
Essential Dependencies only:仅下载Struts 2的核心库。
Documentation:仅下载Struts 2的相关文档,包含Struts 2的使用文档、参考手册和API文档等。
Source:下载Struts 2的全部源代码。
Alternative Java 4 JARs:下载可选的JDK 1.4的支持JAR文件。
通常笔者建议下载Full Distribution版本,该版本已经包含了其他几种安装包,Struts 2安装包只是一个简单的压缩文件,解压即可。使用解压软件解压后,目录结构如图2.8所示。
图2.7 Struts 2下载界面
图2.8 Struts 2目录结构
该目录结构内容如下:
apps:该文件夹下包含了基于Struts 2的示例应用,这些示例应用对于学习者是非常有用的资料。
docs:该文件夹下包含了Struts 2的相关文档,包括Struts 2的快速入门、Struts 2的文档,以及API文档等内容。
j4:该文件夹下包含了让Struts 2支持JDK 1.4的JAR文件。
lib:该文件夹下包含了Struts 2框架的核心类库,以及Struts 2的第三方插件类库。
src:该文件夹下包含了Struts 2框架的全部源代码。
前面在描述Struts 2优点的时候已经说明,Struts 2的安装是非常简单的,只是将JAR文件复制到相应目录即可。在读者正确安装好JDK和Tomcat后,可以通过简单方式测试Struts 2是否可以正常运行。
如图2.8所示的目录结构是一个标准的Web应用结构,其中apps中包含了4个示例程序,分别是:struts2-blank- 2.0.11 .war、struts2-mailreader-2.0.11.war、struts2-portlet-2.0.11.war和struts2-showcase-2.0.11.war。
将struts2-blank- 2.0.11 .war文件拷贝到Tomcat相关目录下。例如,笔者的Tomcat安装目录是:C:/Program Files/Apache Software Foundation/Tomcat 6.0,把示例应用压缩包拷贝到C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps目录下,启动Tomcat,会自动将struts2-blank-2.0.11.war文件解压发布。可以在Tomcat控制台看到如下信息:
Feb 25, 2007 11:42:23 PM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Feb 25, 2007 11:42:24 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on / 0.0.0 .0:8009
Feb 25, 2007 11:42:24 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/141 config=null
Feb 25, 2007 11:42:24 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Feb 25, 2007 11:42:24 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 6672 ms
Feb 25, 2007 11:52:55 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive struts2-blank- 2.0.11 .war
由此说明struts2-blank- 2.0.11 .war应用压缩包被成功发布。在浏览器中输入:http://localhost:8080/struts2-blank-2.0.11/example/HelloWorld.action,会返回Struts的应用示例界面,如图2.9所示,说明Struts 2环境搭建成功。
图2.9 Struts 2示例界面
安装Struts 2的一般步骤是把lib目录下的相关JAR文件拷贝到Web的lib目录中,同时修改Web应用的web.xml文件,添加Struts 2的配置。一般普通的Web应用目录结构如下:
Web应用名称(如Bank):
|-------WEB-INF
|-classes
|-lib
|-web.xml
|-index.jsp
将commons-logging- 1.0.4 .jar、freemarker-2.3.8.jar、ognl-2.6.11.jar、struts2-core-2.0.11.jar和xwork-2.0.4.jar文件拷贝到Web应用的lib目录下。
★ 说明 ★
Struts 2的lib目录中包含有几个插件JAR文件,在没有配置插件之前,不要拷贝到Web应用的lib目录下,否则会出现错误。
在web.xml文件中加入如代码2.1所示的内容。
代码2.1 Struts 2示例的web.xml配置文件
<!—配置Struts 2 -->
<filter>
<!-- 配置核心过滤器 -->
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<!-- 拦截所有URL用户请求 -->
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
另外,需要在classes目录下建立一个struts.xml配置文件,示例中该文件内容如代码2.2所示。
代码2.2 Struts 2示例的struts.xml配置文件
?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- 配置常量 -->
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<!-- 配置开发模式为false -->
<constant name="struts.devMode" value="false" />
<include file="example.xml"/>
<!-- 增加包配置 -->
</struts>
到这里,一个基本的Struts 2框架的Web应用已经完成,目录基本结构如下:
|-------WEB-INF
|-classes
|-struts.xml
|-lib
|-commons-logging- 1.0.4 .jar
|-freemarker- 2.3.8 .jar
|-ognl- 2.6.11 .jar
|-struts2-core- 2.0.11 .jar
|-xwork- 2.0.4 .jar
|-web.xml
|-index.jsp
读者只要建立了类似于该目录结构的Web项目,就可以发布到Web应用服务器,如Tomcat、JBoss、WebLogic等,并不需要特别的设置,只要拷贝到相应发布目录即可。
2.1.5 Eclipse安装Struts 2
Eclipse是流行的开发工具,具有灵活的插件安装功能,不过到目前为止,笔者还没有找到关于Struts 2的相应插件,相信不久就会出现。不使用插件,在Eclipse中也可以非常方便地配置Struts 2开发环境。接下来的步骤就是在Eclipse中安装Struts 2。
启动Eclipse,新建一个Web项目Struts_HelloWorld,如图2.10所示。
图2.10 建立一个Web项目
建好Struts2_HelloWorld项目后,单击“新建”菜单,建立一个Server,如图2.11所示。在建立Server过程中,Eclipse会提示输入Tomcat 6的安装主目录,笔者设置为:C:/Program Files/Apache Software Foundation/Tomcat 6.0。
成功建立Server后,需要将Struts 2的相关JAR粘贴到Web项目的lib目录中,进入Struts 2的lib目录,选择将要粘贴的JAR文件后选择“复制”命令,如图2.12所示。
图2.11 建立一个Server
图2.12 选择JAR文件
转到Eclipse窗口,在“Project Explorer”子窗口中选中Struts2_HelloWorld/ WebContent/WEB-INF/lib,然后在右键菜单中选择“粘贴”命令。经过Eclipse自动刷新“Project Explorer”子窗口,刚才所粘贴的JAR文件应该会出现在Struts2_HelloWorld/Java Resources:src/Libraries/Web App Libraries下,如图2.13所示。
在Java Resources:src目录下建立一个struts.xml配置文件,可以选择“新建|other| General|文件”,输入struts.xml作为文件名。可以输入Struts 2详细配置数据,读者会在后面内容中掌握。
图2.13 Eclipse配置Struts 2
需要对项目中默认的web.xml文件进行修改,修改后的内容如代码2.3所示。
代码2.3 修改web.xml配置文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Struts 2.0 Hello World</display-name>
<!— 配置filter-- >
<filter>
<!-- 配置核心过滤器 -->
<filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<!-- 拦截所有URL用户请求 -->
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!—配置欢迎界面文件-- >
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
Web应用的部署。右键单击“Struts_HelloWorld|Export|WAR file”。单击“Export|WAR file”菜单,出现如图2.14所示的对话框,选择“Web|WAR file”。
单击“Next”按钮,出现如图2.15所示的对话框,输入WAR文件的路径(如%tomcat%/webapps/Struts2_HelloWorld.war),单击“Finish”按钮应用发布完成。
到此为止,Eclipse环境下的Struts 2框架安装就完成了。由于没有Struts 2相关插件,一些配置代码还不会自动生成,不过Struts 2配置起来很简单,并没有给开发者带来很大的麻烦。
后面的开发示例,一般是在JDK环境下完成的,不过读者也可以使用Eclipse来进行编译和部署,并不用进行特别的改动。
图2.14 选择发布类型
★ 说明 ★
如果使用Eclipse作为开发工具,需要安装MyEclipse或者Lombo插件来支持Web开发。笔者使用MyEclipse作为开发工具,读者可以下载安装MyEclipse,建议下载完整版的MyEclipse,安装方法与Eclipse一致。
图2.15 选择发布位置