本章描述如何使用Maven创建一个简单的项目结构、下载所有的Struts 2依赖库、以及使用Struts 2接受用户输入并输出hello消息。
示例程序下载:1.Struts2-Hello-World-XML-Example.zip
工作环境:
- Maven项目管理工具
- Eclipse IDE
- Struts 2.1.8
最终项目结构:
首先看一看本章的Struts 2项目结构,以防在稍后的步骤中忘掉。
1、项目目录结构
从Maven模板创建一个项目目录结构。在命令行,键入“mvn archetype:generate –DarchetypeCatalog=internal”,并选择19以生成一个简单的Java web项目模板(注意:这里使用的是Maven2.2.1。版本不同,这里的模板编号所代表的项目模板类型也可能不同) 。(如果不熟悉Maven的使用,请先参看教程《使用Maven创建一个Java Web应用程序项目》和《将一个Maven生成的Web应用程序项目转换为Eclipse支持格式的项目》)
注意,默认创建的项目目录结构中,少了java源文件目录。在命令行下,使用如下的命令创建java源文件代码目录:
2、pom.xml-Struts 2 依赖
在pom.xml文件中添加Struts 2 信息“struts2-core”,这样Maven将自动下载所有Struts2 依赖库。pom.xml文件如下:
3、转换为Eclipse项目
定位到Struts2Example目录下,使用如下的命令,将生成的项目模板转换为Eclipse IDE web项目。
同时,所有的Struts 2 依赖库也会被下载。稍后,只需要将其导入到Eclipse IDE即可进一步地开发。刚导入时,可能提示编译器版本号错误。因为默认情况下,Maven指定的jdk版本号为1.4,这可以通过项目的属性更改为1.6。
4、JSP视图页面
一个使用Struts 2标签的JSP登录页面,显示用户名、密码文本框和提交按钮。
一个显示向用户显示欢迎页面的JSP视图页面。/p>
注:Struts 1和Struts 2有非常相似的UI标签语法,只有在命名HTML元素方面有一点不同。
5、Action,业务逻辑所在地
下面是一个简单的Struts 2 Action类,它被用来声明所有的内在业务逻辑。
在Struts 2中,Action类不要求实现任何接口或继承任何类,但是要求它必须创建一个execute()方法,以执行业务逻辑,并返回一个字符串值以指明重定向到哪里。
你可能会看到有的用户实现com.opensymphony.xwork2.Action类,不过它是完全自选的,因为类com.opensymphony.xwork2.Action仅仅提供了一些方便的常量值。
说明:Struts1的Action类要求继承自org.apache.struts.action.Action。但是Struts2 Action类不要求必须这么做,不过也允许实现com.opensymphony.xwork2.Action,以使用一些方便的常量,或者继承自com.opensymphony.xwork2.ActionSupport,以使用通用的一些默认的Action实现功能。
6、Struts配置文件
一个Struts配置文件将所有的东西链接在一起。该xml文件名必须为“struts.xml”。
声明一个包,并内含action类。这些action类都可自我解释的,不过你也许会对一些新的package术语兴趣:
这只是一个包名,不必真正关注它。
它是被用来匹配“/User”URL模式。
Struts 2的命名空间和Struts 1多模块是等价的。
这意味着此包继承自struts-default包组件和拦截器,而struts-default包组件和拦截器是在struts-default.xml文件中定义的,位于struts2-core.jar文件的根下。
7、web.xml
配置Web应用程序部署描述符(web.xml)文件,以集成Struts 2。
8、运行程序
在Struts 2中,可以直接以后缀.action访问action类。URL:http://localhost:8080/Struts2Example/User/Login.action
URL:http://localhost:8080/Struts2Example/User/Welcome.action