目录
1. Stripes 框架简介 .............................................................................................................. 1
1.1. 初识 Stripes ........................................................................................................... 1
1.2. Stripes vs Struts 1 .................................................................................................... 1
1.3. Stripes vs Struts 2 ................................................................................................... 3
2. Stripes 快速入门 .............................................................................................................. 4
2.1. 安装 Sun JDK ....................................................................................................... 4
2.2. 使用 Maven 创建项目 ............................................................................................. 4
2.2.1. 安装 Maven ................................................................................................ 4
2.2.2. 创建 Stripes 项目 ......................................................................................... 5
2.3. 使用 NetBeans 创建项目 ......................................................................................... 5
2.4. 开始创建Stripes项目 .............................................................................................. 9
2.5. Stripes的运行原理 ................................................................................................ 10
3. 创建 ActionBean ............................................................................................................ 12
3.1. ActionBean 接口 ................................................................................................... 12
3.2. 处理请求事件 ..................................................................................................... 13
3.3. URL 映射 ........................................................................................................... 13
4. 输入控制 ...................................................................................................................... 15
4.1. 处理表单 ............................................................................................................ 15
4.2. 用户注册程序 ..................................................................................................... 15
4.3. 添加 required 约束 ............................................................................................... 17
4.4. 其它输入控制 ..................................................................................................... 18
4.5. 数据类型转换 ..................................................................................................... 18
4.6. 自定义验证方法 .................................................................................................. 19
4.7. 使用嵌套验证 ..................................................................................................... 20
4.8. 显示错误信息 ..................................................................................................... 21
5. Resolution接口 ............................................................................................................... 23
6. 防止重复提交 ................................................................................................................ 24
6.1. 使用 RedirectResolution ........................................................................................ 24
6.1.1. FlashScope ................................................................................................ 24
6.2. 使用验证码 ......................................................................................................... 25
7. 页面显示 ...................................................................................................................... 28
7.1. 多记录分页显示 .................................................................................................. 28
7.1.1. 使用 Display Tag 处理分页 .......................................................................... 28
7.1.2. 使用 JMesa 进行分页处理 ........................................................................... 33
7.2. 分步提交 ............................................................................................................ 36
8. 文件上传 ...................................................................................................................... 40
8.1. 单个文件上传 ..................................................................................................... 40
8.2. 多文件上传 ......................................................................................................... 42
9. 文件下载 ...................................................................................................................... 44
10. 页面布局 ..................................................................................................................... 46
10.1. 示例 ................................................................................................................. 46
10.2. 向layout模板文件传递参数 ................................................................................. 47
10.3. 嵌套使用 .......................................................................................................... 48
11. 国际化和本地化 ........................................................................................................... 50
11.1. 取得当前Locale .................................................................................................. 50
11.2. 选择字符编码 .................................................................................................... 50
11.3. 查找资源信息 .................................................................................................... 51
11.4. 示例 ................................................................................................................. 51
11.5. 与JSTL共处 ....................................................................................................... 53
12. Ajax 技术 ..................................................................................................................... 54
12.1. 示例:即时检测账号的合法性 ............................................................................ 54
iii
XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/
12.2. 示例:重新获取验证码 ...................................................................................... 55
13. 单元测试 ..................................................................................................................... 57
13.1. 使用 TestNG 进行测试 ........................................................................................ 57
13.2. 使用 Stripes 测试 API .......................................................................................... 57
iv
Stripes快速入门
XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/
第 1 章 Stripes 框架简介
简单的介绍 Stripes 框架
本章会对 Stripes 框架作一个简短的介绍。为什么我们需要Stripes?与我们所熟悉的 Struts 1 和Struts 2 相比,
它有哪些优势?
1.1. 初识 Stripes
和我们熟悉 Struts 1 和 Struts 2 类似,Stripes 同样是一种展示层框架,用于快速构建web程序。在使
用Struts 1,WebWork 和 Struts 2 等框架的时候,通常需要大量额外的 XML 配置,当一个项目达到
一定规模的的时候,编写 Java 代码的同时还要维护大量的 XML 配置,这的确是件费神的事。
Stripes 完全抛弃了这些框架的弊病,使用了最新的 Java 5 带来的技术,遵循 “Convention over
Configuration” 理念,只需要在 Java 代码中加入少量的 Annotation,就可以完成配置,大量减少了
代码的维护工作。
从 Stripes 网站,可以了解到 Stripes 框架的目标:
• 简化 Java web 开发。
• 针对一些常见问题,提供简单而强大的解决方案。
• 容易上手,你很难想像让一个新 Stripes 的用户在30分钟内就能很快进入状态。
• 容易扩展。
Stripes 提供的特性。
• 零配置,不需要外部配置文件,这是 Stripes 最引人注目的特性。
• 强大的binding引擎,足以应对复杂的对象。
• 验证和类型转换机制非常容易使用和本地化。
• 良好的本地化支持,甚至在 JSP 页面之间跳转时仍然生效。
• 能够复用 ActionBean,将它作 view helper 使用。
• 简易的 indexed property 支持。
• 内置支持同一个 form 触发多个事件。
• 具备透明的文件上传能力。
• 支持增量开发。
• 相当灵活,易于扩展。
1.2. Stripes vs Struts 1
作为一种经典的 MVC 框架,Struts 1 曾经在 Java 开发人员心目中占据了最高点。但是随着时间的
推移,Struts 1 基础构架上先天性的缺陷显得越来越明显。同时,JSF 作为标准框架成为 Java EE
标准的一部分,Struts 1 面临着前所未有的挑战。一些开发人员开始尝试使用其它 web 框架,来替
代 Struts 1。Struts 1 的作者也曾尝试对 Struts 1 彻底改造,并提出了雄心勃勃的 “Struts Ti” 计划,
1
XML to PDF by RenderX XEP XSL-FO Formatter, visit us at http://www.renderx.com/