第1章 概述 1
1.1 JSP模型 1
1.1.1 JSP模型1 1
1.1.2 JSP模型2 1
1.2 MVC设计模式 2
1.3 Struts 2框架的定义 2
1.3.1 Servlet Filters 3
1.3.2 Struts Core 4
1.3.3 Interceptors 5
1.3.4 User Created 5
1.4 基本开发环境 5
1.4.1 JDK的下载与安装 5
1.4.2 Tomcat服务器的下载与安装 7
1.4.3 MyEclipse的下载与安装 10
习题 16
第2章 Struts 2框架技术入门 17
2.1 Struts 2框架的下载与安装 17
2.1.1 Struts 2框架的下载 17
2.1.2 Struts 2框架的安装 19
2.2 搭建基于Struts 2框架的Web应用开发环境 21
2.3 基于Struts 2框架的Web应用示例 22
2.3.1 创建视图 23
2.3.2 创建业务控制器类 24
2.3.3 创建struts. xml文件 25
2.3.4 编辑web. xml文件 25
2.3.5 Web项目的发布与测试 26
2.4 基于Struts 2框架的Web应用开发流程总结 28
习题 28
第3章 Struts 2框架的配置 29
3.1 Struts 2框架的体系结构与工作原理 29
3.1.1 Struts 2框架的体系结构 29
3.1.2 Struts 2框架的工作原理 30
3.2 配置web. xml 30
3.2.1 配置Struts 2框架的核心控制器 30
3.2.2 配置第三方过滤器框架 31
3.2.3 配置初始化参数 32
3.3 配置struts. xml 35
3.3.1 struts. xml文件的基本框架 35
3.3.2 package及其包含的子元素 37
3.3.3 include子元素 45
3.3.4 bean子元素 46
3.3.5 constant子元素 47
3.4 配置struts. properties 49
3.4.1 开发模式属性 49
3.4.2 国际化属性 51
3.4.3 文件上传属性 51
3.4.4 模板和主题属性 52
3.4.5 url属性 53
3.4.6 freemarker属性 54
3.4.7 velocity属性 54
3.4.8 ognl属性 54
3.4.9 其他属性 55
3.5 配置struts-default. xml 59
3.6 配置struts-plugin. xml 60
习题 61
第4章 Struts 2框架进阶 62
4.1 result配置 63
4.1.1 Struts 2框架中内置的result类型 63
4.1.2 缺省配置 70
4.1.3 “其他”result配置 71
4.1.4 动态result配置 71
4.1.5 局部和全局result配置 73
4.2 action配置 73
4.2.1 默认类 73
4.2.2 method属性 74
4.2.3 动态方法调用 77
4.2.4 默认的action 78
4.2.5 默认的通配符 79
4.2.6 使用param子元素为action传递参数 80
4.3 Struts 2框架中的Action 81
4.3.1 ActionSupport类 81
4.3.2 Action访问Servlet API 82
习题 85
第5章 Struts 2框架的OGNL 86
5.1 OGNL简介 86
5.2 OGNL语法 86
5.3 OGNL表达式 87
5.3.1 常量 87
5.3.2 属性访问 88
5.3.3 操作符 88
5.3.4 设置值和检索值 89
5.3.5 访问静态方法和字段 89
5.3.6 索引 90
5.3.7 括号表达式 91
5.3.8 链接子表达式 91
5.3.9 变量访问 91
5.3.10 表达式计算 92
5.3.11 Lambda表达式 92
5.4 OGNL的集合操作 92
5.4.1 创建集合 93
5.4.2 投影 94
5.4.3 选择 94
5.5 Struts 2中的OGNL 95
5.5.1 值栈 95
5.5.2 索引 96
5.5.3 使用top访问栈顶对象 96
5.5.4 访问静态属性 96
5.5.5 Struts 2框架的命名对象 97
5.5.6 访问Action属性 97
5.5.7 集合 98
5.6 OGNL应用示例 98
习题 101
第6章 Struts 2框架的标签 102
6.1 普通标签 103
6.1.1 控制标签 103
6.1.2 数据标签 109
6.2 模板和主题 122
6.2.1 模板 122
6.2.2 主题 123
6.3 UI标签 125
6.3.1 表单标签的公共属性 125
6.3.2 表单标签 128
6.3.3 非表单标签 138
6.3.4 Ajax标签 142
习题 165
第7章 Struts 2框架的国际化 167
7.1 资源文件 167
7.1.1 名称格式 167
7.1.2 资源文件的内容 168
7.2 基于Struts 2框架的Web应用的国际化体验 168
7.3 如何在资源文件中使用参数 173
7.4 访问资源文件中消息的方式 175
7.4.1 在Action中访问资源文件中的消息 175
7.4.2 在JSP页面中访问资源文件中的消息 177
7.4.3 在表单标签中访问资源文件中的消息 178
7.4.4 在资源文件中访问资源文件中的消息 178
7.5 资源文件的分类 179
7.5.1 包资源文件 179
7.5.2 Action资源文件 180
7.6 资源文件的加载顺序 181
习题 183
第8章 Struts 2框架的类型转换 184
8.1 Struts 2框架对类型转换的支持 184
8.2 Struts 2框架内置的类型转换器 185
8.3 类型转换体验 185
8.4 处理List类型转换 189
8.5 处理Map类型转换 192
8.6 自定义类型转换器 194
8.6.1 创建基于OGNL的类型转换器 194
8.6.2 创建基于Struts 2框架的类型转换器 196
习题 199
第9章 Struts 2框架的拦截器 200
9.1 拦截器概述 200
9.1.1 AOP 200
9.1.2 拦截器的作用 201
9.2 拦截器的工作过程 202
9.3 拦截器的使用方法 202
9.3.1 创建拦截器类 203
9.3.2 注册拦截器 204
9.3.3 使用拦截器 204
9.4 自定义拦截器示例 205
9.4.1 拦截器工作过程示例 205
9.4.2 登录示例 209
9.5 Struts 2框架的内置拦截器 213
9.5.1 内置的拦截器 213
9.5.2 内置的拦截器栈 230
9.5.3 内置拦截器的配置 234
习题 235
第10章 Struts 2框架的输入校验 236
10.1 输入校验概述 236
10.2 服务器端输入校验 237
10.2.1 使用编码进行输入校验 237
10.2.2 使用配置文件进行输入校验 240
10.3 客户端输入校验 246
10.4 Ajax校验 249
10.5 输入校验的国际化 252
10.6 Struts 2框架的内置校验器 254
10.6.1 类型转换校验器 255
10.6.2 日期校验器 255
10.6.3 双精度浮点数校验器 256
10.6.4 电子邮件校验器 257
10.6.5 表达式校验器 257
10.6.6 字段表达式校验器 257
10.6.7 整型校验器 258
10.6.8 正则表达式校验器 259
10.6.9 必填校验器 259
10.6.10 必填字符串校验器 260
10.6.11 字符串长度校验器 260
10.6.12 网址校验器 261
10.6.13 visitor校验器 261
10.6.14 conditionalvisitor校验器 262
10.7 自定义校验器 263
10.7.1 创建自定义校验器类 263
10.7.2 注册自定义校验器类 264
10.7.3 使用自定义校验器 265
习题 267
第11章 基于Struts 2框架的文件上传和下载 268
11.1 文件上传概述 268
11.1.1 文件上传组件 268
11.1.2 基于Struts 2框架的文件上传开发体验 269
11.2 上传单个文件 271
11.2.1 不对保存上传文件的目录进行硬编码 271
11.2.2 使用新名称保存上传的文件 272
11.2.3 对上传文件的大小及类型进行限制 272
11.2.4 上传文件属性的配置 273
11.2.5 对上传文件错误消息进行国际化 273
11.2.6 上传单个文件示例 274
11.3 上传多个文件 277
11.3.1 使用数组方式实现多文件上传 277
11.3.2 使用List方式实现多文件上传 280
11.4 文件下载概述 284
11.5 基于Struts 2框架的文件下载 286
11.6 任意内容类型的文件下载 288
11.7 统计文件下载的次数 290
习题 293
第12章 Struts 2框架中使用数据库 294
12.1 连接数据库 294
12.1.1 连接MySQL数据库 294
12.1.2 连接Oracle数据库 295
12.1.3 连接SQL Server数据库 297
12.2 MySQL数据库的下载与安装 298
12.3 连接测试 300
12.4 使用数据库的示例 304
12.4.1 创建国际化资源文件 304
12.4.2 创建数据库操作的辅助类 305
12.4.3 创建Action类 309
12.4.4 创建输入校验的配置文件 312
12.4.5 编辑配置文件 313
12.4.6 创建JSP文件 314
12.4.7 测试 316
习题 318
第13章 在线图片管理 319
13.1 概述 319
13.1.1 功能简介 319
13.1.2 总体设计 320
13.2 准备工作 320
13.2.1 创建数据库和表 320
13.2.2 使用Log4j输出信息 321
13.2.3 国际化 321
13.2.4 异步交互 322
13.2.5 数据库配置 322
13.2.6 Web应用的目录结构 322
13.3 辅助类 323
13.3.1 封装数据库操作的辅助类 323
13.3.2 数据分页的辅助类 328
13.4 实现数据模型 329
13.4.1 用户数据模型 329
13.4.2 图片数据模型 330
13.5 实现DAO层 331
13.5.1 定义DAO层接口 331
13.5.2 实现DAO层接口 332
13.6 实现业务逻辑层 337
13.6.1 定义Service层接口 337
13.6.2 实现Service层接口 338
13.7 实现控制器Action 340
13.7.1 管理用户的控制器 340
13.7.2 管理图片的控制器 342
13.8 编写配置文件 347
13.8.1 struts.xml 347
13.8.2 输入校验文件 348
13.9 编写JSP文件 349
13.9.1 操作入口界面 349
13.9.2 用户注册界面 350
13.9.3 用户登录界面 351
13.9.4 用户列表界面 352
13.9.5 图片上传与编辑界面 352
13.9.6 图片列表界面 353
13.9.7 图片查找界面 354
13.10 测试 355
13.10.1 上传图片 355
13.10.2 显示图片 355
13.10.3 查找图片 356
参考文献 357