制作日期:2009-2-28 struts2 系列教程
轻松入门之 Struts2 V3.0
前 言
Struts2 其实并不是一个陌生的 Web 框架,Struts2 是以 Webwork 的设计思想为核心,吸收了 Struts1
的优点,因此,可以认为 Struts2 是 Struts1 和 Webwork 结合的产物。
Struts2 的使用人群逐渐增多,它在逐步吸引开发者和用户的目光,毫无疑问,大家最终都会选择
于它,困为它确实是一个很优秀的框架。Struts2 方面的书籍很多,如果你是想精通 strtus2,那么将
很遗憾地告知你,本书内容不适合你;如果你想花最少的时间来获取对 struts2 的最大了解程度,则它
将是你最好的选择。本着学习共享的精神,将总结的资料与所有的朋友共享,希望各位朋友多多指教。
感谢周大庆和聂静宇等朋友的参与,本教程又添加了相应的内容,并对以前的细节做了调整。由于
时间关系,未能全部完善,希望更多的朋友参与进来,集众人所长,所快乐分享。由于精力有限,有些
内容未细细推敲,有些内容攫取于网络,如果无意之间侵犯了您的版权,请您来信告知,我将尽快删除。
如果知识点有误,感谢告知。
从 2.0 发布至今已有三个多月,在这三个多月中发生了很多事情,尤其是姑姑的去世让我悲痛万分。
希望身边的朋友多关注健康,重视健康。这段时间也一直忙于基于 struts2 的项目开发,直到项目临近
尾声之时才抽出空儿来对本文档进行更新。希望更多的朋友参与进来,把最实用的知识展现出来,让更
多的初学者朋友少走弯路,快速上手。
欢迎免费索取本资料,欢迎相互交流。本资料仍在不断完善之中,可以通过加入群、发邮件或关注
blog 来获取最新资料。
如果你的 JavaWeb 基础不够夯实,请参看 JavaWeb 书籍,如果想对 struts2 有深入了解,请与 JSF
比照学习,以下书籍向大家推荐,书籍中的案例均具有可操作性。
大漠孤烟@2008 QQ:53983038 QQ 群:76434335
Page 1 of 162
《JSF编程》清华出版社出版:详情请查询:http://www.china-pub.com/39347
《Java Web整合》人民邮电出版社出版:详情请查询:http://www.china-pub.com/195118
《精通JSF
》人民邮电出版社出版:详情请查询:http://www.china-pub.com/195117
技术交流 QQ:53983038 文档学习 QQ 群:76434335
作者Email:qhxx@tom.com
交流blog:http://xmh517.javaeye.com/
制作日期:2009-2-28 struts2 系列教程
大漠孤烟@2008 QQ:53983038 QQ 群:76434335
Page 2 of 162
大漠孤烟
2009-3-1
目 录
第 1章 STRUTS2入门.................................................................................................................................................3
第 2章STRUTS2晋级..................................................................................................................................................9
第 3章 STRUTS2核心概念.......................................................................................................................................15
3.1 struts2 的体系结构
...................................................................................................................................16
3.2 struts2 配置文件
.......................................................................................................................................17
3.3 Action配置
..................................................................................................................................................25
第 4章 表单验证....................................................................................................................................................28
4.1 手动完成输入校验
......................................................................................................................................31
4.2 struts2 框架实现数据校验
.....................................................................................................................34
第 5章 国际化实现................................................................................................................................................ 37
5.1 页面的国际化
..............................................................................................................................................38
5.2 Action的国际化
..........................................................................................................................................39
5.3 验证信息的国际化
......................................................................................................................................41
第 6章 拦截器浅析................................................................................................................................................ 42
6.3 拦截器基础
..................................................................................................................................................42
6.2 使用拦截器
..................................................................................................................................................43
6.3 自定义拦截器
..............................................................................................................................................45
6.4 综合示例
......................................................................................................................................................49
第 7章 探讨IOC模式...............................................................................................................................................49
第 8章 STRUTS2标签...............................................................................................................................................54
第 9章 表达式OGNL................................................................................................................................................78
9.1 OGNL概述
......................................................................................................................................................79
9.2 OGNL基础
......................................................................................................................................................80
9.3 struts2 中OGNL
...........................................................................................................................................82
9.4 OGNL使用示例
..............................................................................................................................................83
第 10 章 上传下载.................................................................................................................................................. 85
第 11 章 视图浅析.................................................................................................................................................. 89
第 12 章 集成AJAX ................................................................................................................................................... 89
12.1 JSON概述
....................................................................................................................................................89
12.2 JSON-RPC概述
............................................................................................................................................90
12.3 JSON示例
....................................................................................................................................................90
12.4 struts2 与JSON 例示
.................................................................................................................................93
第13章 集成HIBERNATE............................................................................................................................................96
13.1 系统总体设计图
.........................................................................................................................................96
13.2 系统用例图
.................................................................................................................................................97
13.3 数据库
........................................................................................................................................................97
13.4 系统效果图展示
.........................................................................................................................................98
13.5 代码清单
................................................................................................................................................... 105
13.6 代码树形图
.............................................................................................................................................. 125
第14章 集成SPRING .............................................................................................................................................. 125
制作日期:2009-2-28 struts2 系列教程
.............................................................................................................................................. 125 第 15 章 集成IBATIS
.............................................................................................................................................. 134 第 16 章 集成JQUERY
16.1 什么是Jquery
.......................................................................................................................................... 134
16.2 Jquery操作CSS
........................................................................................................................................ 134
16.3 Jquery操作DOM
........................................................................................................................................ 136
16.4 Jquery处理text
...................................................................................................................................... 142
16.5 Jquery处理xml
........................................................................................................................................ 144
16.4 Jquery处理json
...................................................................................................................................... 144
........................................................................................................................................ 144 第17章 投票管理系统
第18章
无纸化办公管理系统............................................................................................................................. 144
.................................................................................................................................... 161 第19章 某数据采集系统
第 1 章 Struts2 入门
Struts2 的学习持续有一段时间了,也经历个几个小项目。身边也有一些朋友在逐步使用 struts2,
为了减轻他们的学习曲线,我把自己的学习过程用文字记录下来,供他们参考。现在也决定把它共享出
来,请大家批评指正。
Struts2 虽然简单,但要一一描述清楚,可能会形成厚厚地一本书。所以我这里仅仅记录与工作相
关的内容。有些部分请读者朋友查看相应的帮助文档或专业书籍。
一、环境说明
1. Struts 版本:2.1.2
此处下载的是 struts-2.1.2-all
大漠孤烟@2008 QQ:53983038 QQ 群:76434335
Page 3 of 162
制作日期:2009-2-28 struts2 系列教程
2. JDK 版本:JDK1.5
3. Tomat 版本:6
4. MySql 版本:5.0
6. MyEclipse 版本:6
除无特别说明,后面的程序都基于以上环境。有些内容是基于 struts-2.1.2 所提供的案例。
当提交一个 HTML 表单到这个框架中的时候,输入并不是被发送到服务页,而是被发送到你提供的
Java 类,这些类被称为 Action。在这些 Action 执行完后,选择某一个资源来呈现返回结果,这个资源
一般是页面,但也可以是 PDF 文件,或者是 Excel 文件,亦或是 Java applet 窗口。
假设你想要创建一个“Hello World”的例子来呈现欢迎信息,在你准备好开发环境后,为了创建
一个“Hello World”的例子,你需要做如下三件事情:
1、创建一个 jsp 页面来呈现欢迎信息;
2、创建一个 Action 类来创建信息;
3、在配置文件中配置 action 和页面的映射关系。
注意:为了创建这个组件,我们将工作流分成几乎无人不晓的三部分:视图、模型和控制器。分离
这三部分的原因是当系统变得越来月复杂的时候,我们能够更好的管理。
一.准备工作
建立 web 工程,其中工程名为 tutorial,在 WebRoot 下引入 struts2 的 lib 下的如下 4 个包:
大漠孤烟@2008 QQ:53983038 QQ 群:76434335
Page 4 of 162
制作日期:2009-2-28 struts2 系列教程
在 web.xml 文件中增加 struts2 的 FilterDispatcher,修改后的 web.xml 如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns=http://java.sun.com/xml/ns/j2ee
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>tutorial</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<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>
注意:struts2 配置了一个过滤器来执行分发功能。
二.代码
1、我们需要一个 jsp 页面来呈现信息,HelloWorld.jsp 页面代码如下所示:
<%@ page contentType=" text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
大漠孤烟@2008 QQ:53983038 QQ 群:76434335
Page 5 of 162