第1章 Struts 2概述 1
1.1 MVC思想概述 2
1.1.1传统的Model 1和Model 2 2
1.1.2 MVC思想及特点 3
1.1.3常见MVC技术 3
1.2 Struts 1概述 3
1.3 Struts 2概述 5
1.3.1 Struts 2的优势 6
1.3.2 Struts 2的体系结构 8
1.3.3 Struts 2的配置文件 9
1.3.4 Struts 2的标签库 10
1.3.5 Struts 2的控制器 11
1.4 Struts 2的下载和安装 12
1.5上机实训 14
1.6本章习题 14
第2章 Struts 2入门 17
2.1 HelloWorld应用介绍 18
2.2创建Struts 2的Web应用 18
2.2.1创建Web应用 18
2.2.2用户请求页面 19
2.2.3控制器实现 21
2.2.4配置Action 22
2.2.5完成应用 23
2.3 Struts 2的Action 25
2.3.1实现Action接口 25
2.3.2 Action访问ActionContext 28
2.3.3继承ActionSupport类 30
2.4上机实训 35
2.5本章习题 35
第3章 Struts 2的核心技术 37
3.1 Struts 2的执行流程和原理 38
3.2 Action的驱动模式 45
3.2.1属性驱动模式 46
3.2.2模型驱动模式 48
3.3上机实训 49
3.4本章习题 50
第4章 Struts 2的配置方式(1) 51
4.1 web.xml文件的配置 52
4.2 struts.xml文件的配置 54
4.2.1 bean的配置 54
4.2.2 package的配置 56
4.2.3 namespace的配置 57
4.2.4 constant的配置 58
4.2.5 interceptor的配置 58
4.2.6 include的配置 61
4.2.7 action的配置 61
4.2.8 result的配置 65
4.2.9 exception的配置 67
4.3 Result Types的配置 69
4.3.1 Chain Result的配置 70
4.3.2 Dispatcher Result的配置 71
4.3.3 FreeMarker Result的配置 72
4.3.4 HttpHeader Result的配置 72
4.3.5 Redirect Result的配置 73
4.3.6 Stream Result的配置 73
4.3.7 Velocity Result的配置 75
4.3.8 Xslt Result的配置 75
4.3.9 PlainText Result的配置 77
4.3.10 JSON Result的配置 77
4.3.11全局结果 81
4.3.12动态结果映射 82
4.4上机实训 83
4.5本章习题 83
第5章 Struts 2的配置方式(2) 85
5.1 Annotations的配置 86
5.1.1 Namespace的配置 88
5.1.2 ParentPackage的配置 88
5.1.3 Action的配置 90
5.1.4 Actions的配置 91
5.1.5 InterceptorRefs的配置 92
5.1.6 Result的配置 93
5.1.7 Results的配置 93
5.1.8 ResultPath的配置 94
5.1.9 ExceptionMapping的配置 94
5.1.10 ExceptionMappings的配置 95
5.2 Validation Annotations的配置 95
5.2.1 ConversionErrorFieldValidator的配置 96
5.2.2 DateRangeFieldValidator的配置 98
5.2.3 DoubleRangeFieldValidator的配置 101
5.2.4 EmailValidator的配置 102
5.2.5 ExpressionValidator的配置 103
5.2.6 IntRangeFieldValidator的配置 104
5.2.7 RegexFieldValidator的配置 105
5.2.8 RequiredFieldValidator的配置 106
5.2.9 RequiredStringValidator的配置 107
5.2.10 StringLengthFieldValidator的配置 108
5.2.11 UrlValidator的配置 109
5.2.12 Validation的配置 110
5.2.13 Validations的配置 110
5.2.14 VisitorFieldValidator的配置 112
5.2.15 CustomValidator的配置 114
5.3 struts.properties的配置 115
5.4 struts-plugin.xml的配置 116
5.5各种配置文件的加载顺序 116
5.6上机实训 116
5.7本章习题 117
第6章 Struts 2的类型转换 119
6.1 Struts 2类型转换器 120
6.1.1 Struts 2内置的类型转换器 120
6.1.2自定义转换器 120
6.2批量类型转换 126
6.3上机实训 129
6.4本章习题 130
第7章 Struts 2的拦截器 131
7.1理解拦截器 132
7.1.1理解DRY规则 132
7.1.2拦截器的原理 132
7.1.3 Struts 2内建的拦截器 134
7.1.4 struts-default.xml里配置的拦截器 136
7.2拦截器的配置 140
7.2.1配置拦截器 140
7.2.2拦截器的使用 141
7.2.3配置默认的拦截器 142
7.3自定义拦截器 144
7.3.1实现拦截器类 144
7.3.2使用拦截器 145
7.3.3拦截方法的拦截器 146
7.4拦截器示例 148
7.5用Annotation配置拦截器 155
7.6上机实训 156
7.7本章习题 157
第8章 Struts 2 OGNL的应用 159
8.1 OGNL概述 160
8.2 OGNL语法基础 160
8.2.1 OGNL表达式 160
8.2.2常量 161
8.2.3操作符 161
8.2.4访问JavaBean中的属性 161
8.2.5索引访问 162
8.3 OGNL的使用 165
8.4 Struts 2中的OGNL 169
8.5上机实训 170
8.6本章习题 171
第9章 Struts 2的标签(1) 173
9.1 Struts 2标签的引入 174
9.2通用标签 176
9.2.1流程控制标签 176
9.2.2数据标签 190
9.3 UI标签 205
9.3.1表单标签 205
9.3.2非表单标签 225
9.4上机实训 229
9.5本章习题 229
第10章 Struts 2的标签(2) 231
10.1 Ajax标签 232
10.1.1 a标签 232
10.1.2 autocompleter标签 235
10.1.3 bind标签 238
10.1.4 datetimepicker标签 241
10.1.5 div标签 243
10.1.6 head标签 246
10.1.7 submit标签 248
10.1.8 tabbedPanel标签 251
10.1.9 textarea标签 254
10.1.10 tree/treenode标签 255
10.2 Struts 2主题和模板 259
10.3上机实训 261
10.4本章习题 262
第11章 Struts 2的校验 263
11.1校验基础 264
11.2服务器端的校验配置 270
11.3客户端校验配置 280
11.4 Ajax校验配置 284
11.5上机实训 286
11.6本章习题 287
第12章 Struts 2的国际化 289
12.1常见国际化示例 290
12.2页面内容的国际化 292
12.3错误信息国际化 298
12.4格式化输出日期和数值 300
12.5资源文件的加载方式和流程 303
12.6上机实训 306
12.7本章习题 306
第13章 Struts 2上传下载和其他技术 307
13.1 Token防止表单重复提交 308
13.1.1 TokenInterceptor的使用 308
13.1.2 TokenSessionStoreInterceptor的使用 313
13.2 Struts 2文件的上传和下载 316
13.2.1 Struts 2文件的上传 316
13.2.2 Struts 2文件的下载 325
13.2.3中文文件的下载 327
13.3 Struts 2中文乱码处理总结 332
13.4页面跳转技巧 334
13.5使用SiteMesh布局 334
13.5.1 SiteMesh简介 334
13.5.2 SiteMesh运行原理 335
13.5.3 SiteMesh实例 336
13.6在Struts 2中使用FreeMarker 340
13.6.1 FreeMarker简介 340
13.6.2 FreeMarker快速上手 341
13.6.3在Struts 2中使用FreeMarker 342
13.7上机实训 346
13.8本章习题 347
第14章 S2SH技术整合 349
14.1为什么要整合S2SH 350
14.2 Struts 2与Spring整合 351
14.3 Struts 2与Hibernate整合 356
14.4 Struts 2+Spring+Hibernate整合 361
14.5上机实训 366
14.6本章习题 366
第15章 Struts 2留言板项目案例 367
15.1系统概述 368
15.2系统需求 368
15.2.1前台留言板块 368
15.2.2管理留言板块 369
15.3系统功能描述 369
15.3.1浏览留言 369
15.3.2管理员后台操作 372
15.4系统设计 374
15.4.1系统架构设计 374
15.4.2业务实体设计 374
15.4.3业务逻辑设计 375
15.5数据库设计 375
15.5.1 E-R图设计 375
15.5.2物理建模 376
15.5.3设计表格 376
15.5.4数据表脚本 377
15.6 JDBC封装 378
15.6.1公共接口封装 378
15.6.2数据库连接类 386
15.6.3 Dao工厂类 388
15.7功能模块实现 389
15.7.1控制器Action的实现 389
15.7.2业务逻辑层的实现 396
15.7.3 struts.xml文件的配置 397
15.8运行工程 397
15.8.1使用工具 397
15.8.2工程部署 397
15.8.3运行程序 398
15.9上机实训 400
15.10本章习题 400
附录1 部分属性设置说明 401
附录2 Struts 2程序开发实用教程习题答案 405