第1章Struts 2入门1
1.1MVC模式1
1.2Struts 2的体系结构2
1.3Struts 2的工作环境3
1.3.1Struts 2的下载与安装4
1.3.2使用Eclipse开发Struts 2的Web应用4
1.3.3使用MyEclipse开发Struts 2的Web应用10
1.4第一个Struts 2应用14
1.4.1用户请求页面14
1.4.2Action实现15
1.4.3配置Action15
1.4.4发布并运行Web应用16
1.4.5struts.xml配置中的包属性介绍19
1.5实践环节19
1.6本章小结19
习题120第2章Struts 2的Action21
2.1Action的创建与配置21
2.1.1Action的创建方式21
2.1.2Action的配置23
2.1.3DMI以及通配符24
2.1.4实践环节26
2.2Action接收请求参数26
2.2.1使用Action属性接收参数26
2.2.2使用DomainModel接收参数27
2.2.3使用ModelDriven<T>接口接收参数29
2.2.4实践环节29
2.3Action访问Servlet API30
2.3.1通过ActionContext30
2.3.2实现RequestAware、SessionAware和ApplicationAware接口32
2.3.3通过ServletActionContext33
2.3.4实现ServletRequestAware接口34
2.3.5实践环节35
2.4struts.xml文件中的include及constant36
2.4.1include的配置36
2.4.2constant的配置36
2.5Action中常见的结果类型37
2.5.1chain类型37
2.5.2redirectAction类型38
2.5.3redirect类型39
2.5.4dispatcher类型39
2.5.5全局result39
2.5.6实践环节40
2.6包的继承41
2.7本章小结42
习题242第3章Struts 2的类型转换43
3.1类型转换的意义43
3.2Struts 2内置的类型转换器45
3.3自定义类型转换器47
3.3.1实现类型转换器50
3.3.2注册类型转换器52
3.3.3实践环节53
3.4数组属性的类型转换器53
3.5集合属性的类型转换器56
3.6本章小结58
习题358第4章Struts 2的拦截器59
4.1拦截器概述59
4.1.1拦截器的原理59
4.1.2拦截器与过滤器的区别59
4.1.3Struts 2内置的拦截器60
4.2拦截器的配置61
4.2.1配置拦截器62
4.2.2拦截器栈63
4.2.3默认拦截器63
4.2.4实践环节64
4.3自定义拦截器64
4.3.1实现Interceptor接口65
4.3.2继承AbstractInterceptor类67
4.3.3继承MethodFilterInterceptor类67
4.3.4实践环节69
4.4使用自定义拦截器完成权限验证71
4.5本章小结74
习题474第5章表达式语言OGNL76
5.1OGNL简介76
5.2OGNL基础76
5.2.1OGNL上下文78
5.2.2值栈81
5.2.3OGNL的访问83
5.2.4实践环节85
5.3OGNL基本语法85
5.3.1常量86
5.3.2操作符86
5.3.3OGNL表达式87
5.3.4实践环节91
5.4本章小结96
习题596第6章Struts 2中的标签97
6.1标签库概述97
6.1.1标签的分类97
6.1.2标签的使用97
6.1.3标签的语法97
6.2数据标签98
6.2.1action标签99
6.2.2bean标签102
6.2.3date标签103
6.2.4debug标签104
6.2.5include标签105
6.2.6param标签106
6.2.7push标签106
6.2.8set标签107
6.2.9url标签108
6.2.10property标签109
6.2.11实践环节109
6.3流程控制标签110
6.3.1if/elseif/else标签110
6.3.2iterator标签111
6.3.3append标签113
6.3.4generator标签114
6.3.5merge标签115
6.3.6subset标签115
6.3.7sort标签117
6.3.8实践环节118
6.4表单标签118
6.4.1表单标签的通用属性118
6.4.2checkboxlist标签119
6.4.3combobox标签121
6.4.4doubleselect标签122
6.4.5optiontransferselect标签123
6.4.6select标签125
6.4.7optgroup标签126
6.4.8radio标签127
6.4.9实践环节128
6.5非表单标签129
6.6本章小结131
习题6131第7章Struts 2的输入校验132
7.1输入校验概述132
7.1.1客户端校验132
7.1.2服务器端校验136
7.2手动编程校验136
7.2.1重写validate()方法136
7.2.2重写validateXxx()方法139
7.2.3输入校验的流程140
7.2.4实践环节140
7.3校验框架校验141
7.3.1Struts 2内置的校验器141
7.3.2常用内置校验器的配置142
7.3.3校验Action中所有与execute签名相同的方法143
7.3.4校验Action中某个与execute签名相同的方法145
7.3.5校验文件搜索顺序146
7.3.6实践环节146
7.4本章小结146
习题7147第8章Struts 2的国际化148
8.1程序国际化概述148
8.1.1Java国际化的思想148
8.1.2Java支持的语言和国家149
8.1.3Java程序国际化150
8.1.4带占位符的国际化信息152
8.1.5实践环节152
8.2国际化的步骤153
8.2.1Struts 2中加载全局资源文件153
8.2.2国际化信息输出153
8.2.3实践环节156
8.3资源文件的加载方式157
8.3.1包范围资源文件157
8.3.2Action范围资源文件157
8.3.3临时指定资源文件157
8.4用户自定义切换语言示例158
8.5本章小结162
习题8163第9章文件的上传与下载164
9.1Struts 2文件上传164
9.1.1基于表单的文件上传164
9.1.2Struts 2单文件上传165
9.1.3拦截器实现文件过滤168
9.1.4文件上传的常量配置169
9.1.5Struts 2多文件上传169
9.1.6实践环节172
9.2Struts 2文件下载172
9.3本章小结176
习题9176第10章电子商务平台的设计与实现178
10.1系统设计178
10.1.1系统功能需求178
10.1.2系统模块划分178
10.2数据库设计179
10.2.1数据库概念结构设计179
10.2.2数据逻辑结构设计181
10.2.3创建数据表182
10.3系统管理185
10.3.1导入相关的jar包185
10.3.2JSP页面管理185
10.3.3包管理189
10.3.4配置文件管理189
10.4组件设计195
10.4.1过滤器195
10.4.2拦截器195
10.4.3验证码196
10.4.4数据库操作196
10.5后台管理子系统的实现211
10.5.1Action的实现212
10.5.2管理员登录218
10.5.3添加商品219
10.5.4查询商品221
10.5.5修改商品223
10.5.6删除商品226
10.5.7订单管理227
10.5.8用户管理228
10.5.9公告管理229
10.5.10退出系统232
10.6前台电子商务子系统的实现232
10.6.1Action的实现233
10.6.2导航栏239
10.6.3销售排行243
10.6.4人气排行243
10.6.5最新商品243
10.6.6公告栏243
10.6.7用户注册243
10.6.8用户登录243
10.6.9商品详情244
10.6.10关注商品246
10.6.11购物车246
10.6.12下单249
10.6.13用户中心251
10.7本章小结255
参考文献256