Struts核心开发人员办作;全面讲述精通Struts 2,涵盖Spring、Hibermate的集成;完整展现一个Web 2.0实际项目的开发过程。
精通Struts灵活易用、功能强大,是广受欢迎的Java Web框架。新版本的精通Struts 2更上一层楼,提供了更好的AJAX和Spring集成支持。
本书由Struts框架的核心开发人员撰写。书中通过循序渐进地开发一个贯穿全书的实际应用,全面直观地展示了如何运用精通Struts 2的各种特性,结合Spring、Hibernate和各种Web 2.0技术,创建下代功能强大、流畅易用的网站,非常贴近实战。在此过程中,你将对Struts框架、Web开发和现代软件开发实践有更加深入的认识,从而大大提升自己的编程功力。
Struts是广受欢迎的Java Web应用框架。Struts 2融合了WebWork,提供了更加灵活的Web 2.0开发平台。本书通过一个完整的Web应用示例,全面讲述了Struts 2框架本身以及运用Struts开发Web项目的全过程。
本书适合各层次Java开发人员阅读和参考。
第1章 Web 2.0和Struts 2 1
1.1 什么是Web 2.0 1
1.2 Web应用开发2.0 5
1.3 如何使用本书 7
第2章 获取和运行Struts 2 9
2.1 构建过程 9
2.2 Struts 2的启动器应用 12
2.2.1 Maven2生成的目录和文件结构 12
2.2.2 Maven2配置文件 13
2.2.3 启动器应用的特性 17
2.3 小结 29
第3章 框架概述 31
3.1 请求—响应执行过程通览 31
3.1.1 发起请求 31
3.1.2 Struts 2的servlet过滤器 32
3.1.3 action调用 33
3.1.4 action简介 33
3.1.5 拦截器简介 33
3.1.6 结果简介 33
3.2 深入探讨核心组件 34
3.2.1 action介绍 34
3.2.2 拦截器介绍 35
3.2.3 自定义拦截器 38
3.2.4 值栈和OGNL 38
3.2.5 结果和结果类型 40
3.2.6 标签库 41
3.3 配置框架元素 43
3.3.1 web.xml文件 43
3.3.2 零配置注释 44
3.3.3 struts.xml配置文件 46
3.3.4 配置执行环境 54
3.4 扩展框架 55
3.5 小结 57
第4章 示例应用概览 58
4.1 示例应用 58
4.1.1 用例 59
4.1.2 集成技术 60
4.1.3 领域模型 60
4.2 敏捷开发过程 61
4.3 持续集成 62
4.4 集成持久化层 63
4.4.1 配置依赖项 64
4.4.2 安装MySQL 66
4.4.3 配置Hibernate 67
4.4.4 使用Hibernate创建数据访问对象 69
4.5 小结 72
第5章 数据操作 73
5.1 用例 73
5.2 CRUD功能 73
5.3 领域模型 74
5.3.1 模型驱动action 75
5.3.3 配置 79
5.3.2 配备代码和数据预填充 76
5.3.3 配置 79
5.4 action类 80
5.4.1 单一工作单元 81
5.4.2 零配置 82
5.4.3 多工作单元 89
5.4.4 单元测试 92
5.5 JSP模板 96
5.6 输入验证 105
5.7 异常处理 110
5.7.1 意外的错误 110
5.7.2 改变工作流 111
5.7.3 通过与用户交互来恢复 111
5.7.4 显示错误 113
5.8 文件上传 115
5.8.1 修改action 118
5.8.2 基于XML配置的action和基于通配符配置的action 118
5.8.3 零配置action 119
5.9 小结 120
第6章 向导和工作流 121
6.1 用例 121
6.2 作用域拦截器 123
6.2.1 配置 124
6.2.2 工作流元素 125
6.2.3 自定义验证 127
6.2.4 用于呈现的自定义Struts 2标签 132
6.2.5 处理子类领域对象 133
6.2.6 实现flash作用域 138
6.2.7 使用OGNL来验证action 140
6.2.8 输入选手信息的其他方式 141
6.3 小结 146
第7章 安全 147
7.1 用例 147
7.2 基于容器的身份验证 148
7.2.1 配置容器 148
7.2.2 配置Web应用 149
7.2.3 访问角色信息 152
7.2.4 角色拦截器 153
7.3 实现Acegi 154
7.3.1 配置Acegi 154
7.3.2 Acegi应用上下文配置文件 155
7.3.3 实现自定义的身份验证提供者 157
7.3.4 用户身份验证 159
7.3.5 存取角色信息 160
7.4 自定义身份验证与授权 165
7.4.1 阻止非授权访问 165
7.4.2 配置授权 167
7.4.3 实现身份验证 169
7.4.4 访问角色信息 171
7.5 小结 172
第8章 搜索与列表 173
8.1 用例 173
8.2 搭建平台 173
8.2.1 更新页面布局 173
8.2.2 创建用户友好的主页 177
8.2.3 模块化列表呈现功能 180
8.3 通过名字搜索活动 182
8.4 开发一般搜索表单 187
8.5 合并列表action 192
8.6 小结 195
第9章 聚合与集成 196
9.1 用例 196
9.2 实现RSS 196
9.2.1 结果和结果类型 199
9.2.2 配置结果类型 199
9.2.3 实现RSS结果类型 201
9.2.4 实现Atom feed 205
9.3 在mashup中使用RSS feed 206
9.3.1 配置GeoRSS模块 207
9.3.2 对地址进行地理编码和创建feed入口 207
9.3.3 实现mashup客户端 211
9.3.4 将地图集成到主页中 214
9.4 实现Web服务 216
9.4.1 将URL映射到action 217
9.4.2 配置action映射器 218
9.4.3 创建自定义action映射器 219
9.4.4 实现REST式的Web服务逻辑 223
9.5 小结 229
第10章 AJAX 230
10.1 用例 230
10.2 支撑性基础设施的开发 231
10.2.1 更新菜单选项 231
10.2.2 实现投票用例 233
10.3 使用ajax theme 239
10.3.1 配置应用 240
10.3.2 检索action结果 240
10.3.3 将action当成事件调用 242
10.3.4 其他使用ajax theme的场合 246
10.4 使用JavaScript 248
10.4.1 使用XML结果类型 248
10.4.2 使用JSON结果类型插件 255
10.5 使用GWT 259
10.5.1 生成GWT启动器代码 260
10.5.2 配置Struts 2插件 261
10.5.3 集成Struts 2和GWT 262
10.6 小结 268