本文以Hello World为例介绍Struts 2的简单应用
开发工具:Eclipse EE Juno 4.2
运行环境:Java 1.7+Tomcat 7+Struts 2.3.4
1. 下载Struts 2
Struts 2完整版下载地址:http://labs.mop.com/apache-mirror//struts/binaries/struts-2.3.4-all.zip. 完整版包括示例,库文件,文档和源码,方便学习。下载后解压到任意位置。
PS:struts-2.3.4-all.zip的文档不包括api等,因此最好下载单独的文档,下载地址:http://labs.mop.com/apache-mirror//struts/documentation/struts-2.3.4-docs.zip
2. 创建Dynamic Web Project
在Eclipse中创建Dynamic Web Project,如StrutsHelloWorld,Target runtime选择Tomcat 7.0(或在新建项目完成后设置),剩下步骤采用默认设置。
PS:如果创建项目时找不到Dynamic Web Project,可能是由于未使用Eclipse EE版,可以下载Eclipse EE或者在EclipseSE中增加Web开发工具包;如果Targetruntime中没有Tomcat,请参照Eclipse中Tomcat的配置。
3. 添加配置文件
在简单的Hello World中,需要添加两个与Struts相关的配置文件,web.xml和struts.xml。可以从Struts的示例程序中复制到HelloWorld项目中。找到下载的struts中的apps文件夹下的struts2-blank.war文件,使用解压缩软件解压,web.xml文件位于WEB-INF中,复制到HelloWorld项目WebContent的WEB-INF目录下,struts.xml文件在WEB-INF\src\java中,复制到HelloWorld项目src目录下
PS:struts.xml文件可以放在任意Deploy path为WEB-INF/classes的根目录中,如src。具体可以通过项目属性中的Deployment Assembly查看路径为WEB-INF/classes的目录有哪些。
4. 添加相关库文件
将struts2-blank下WEB-INF\lib中文件全部复制到HelloWorld项目中相同目录下,HelloWorld中需要使用的Struts相关库文件添加完成。
5. 编写HelloWorld
- 添加hello.html页面,在body中添加如下代码:
<h1>Hello world!</h1>
<p>This is my first struts2 web app!</p>
- 添加index.html页面,在body中添加以下代码:
<form action="helloworld">
<input type="submit" value="welcome" />
</form>
- 在struts.xml文件的package节点中增加如下内容:
<action name="helloworld">
<result>hello.html</result>
</action>
- 运行HelloWorld项目,点击页面中的按钮后,浏览器显示hello.html中的内容
6. 原理解释
点击welcome按钮,表单提交请求给服务器,服务器调用名为helloworld的action,同时根据web.xml过滤器的设置,调用Struts 2过滤器,Struts 2再根据struts.xml的配置,找到action helloworld对应的处理,根据调用的返回结果,将result中的内容返回给浏览器
7. Struts相关技巧
- 更改struts配置免重启服务器。添加或修改devMode的值如下所示:
<constant name="struts.devMode" value="true"/>
- Eclipse中跟踪显示Struts源代码和帮助文档。
在Web App Libraries下找到需要显示源码的jar右键选择属性->JavaSource Attachment,选择External location,再选择struts 源代码路径(src)即可跟踪显示源代码,在属性中选择JavaDoc Location,将Javadoc location path设置为struts帮助文档所在路径(docs/struts2-core/apidocs)即可在Eclipse中显示帮助文档。