第1章 Struts 2概述
1.1 MVC思想概述
1.1.1 Web技术的发展
1.1.2 Model 1和Model 2
1.1.3 MVC思想及其优势
1.1.4 常用的MVC框架
1.2 struts 1的缺陷与现状
1.2.1 支持的表现层技术单一
1.2.2 与Servlet API严重耦合
1.2.3 代码依赖于Struts 1 API
1.3 Struts 2的优势与体系
1.3.1 struts 2的优势
1.3.2 Struts 2架构
1.3.3 Struts 2的配置文件
1.3.4 Strut 2的标签库
1.3.5 Struts 2的控制器组件
1.4 本章小结
第2章 Struts 2的HelloWorld
2.1 下载和安装Struts 2框架
2.2 从用户请求开始
2.3 创建Struts 2的Web应用
2.3.1 创建Web应用
2.3.2 增加Struts 2功能
2.4 实现控制器
2.4.1 实现控制器类
2.4.2 配置Action
2.4.3 增加视图资源完成应用
2.5 改进控制器
2.5.1 实现Action接口
2.5.2 跟踪用户状态
2.5.3 添加处理信息
2.5.4 输出处理信息
2.6 改进视图组件
2.6.1 保护JSP页面
2.6.2 改善输出页面
2.6.3 使用UI标签简化表单页面
2.7 完成程序国际化
2.7.1 定义国际化资源文件
2.7.2 加载资源文件
2.7.3 输出国际化信息
2.8 增加数据校验
2.8.1 继承ActionSupport
2.8.2 使用Struts 2的校验框架
2.9 本章小结
第3章 Struts 2核心技术
3.1 在Eclipse中开发Struts 2
3.1.1 创建Web应用
3.1.2 增加Struts 2支持
3.1.3 部署Struts 2应用
3.1.4 增加应用的Action
3.2 Struts 2的基本流程
3.2.1 核心控制器StrutsPrepareAndExecuteFilter
3.2.2 业务控制器
3.2.3 Struts 2的模型组件
3.2.4 Struts 2的视图组件
3.2.5 Struts 2的运行流程
3.3 Struts 2的基本配置
3.3.1 配置web.xml文件
3.3.2 struts.xml配置文件
3.3.3 struts.properties文件与常量配置
3.3.4 struts.xml文件结构
3.4 深入Struts 2配置文件
3.4.1 Bean配置
3.4.2 常量配置
3.4.3 包配置
3.4.4 命名空间配置
3.4.5 包含配置
3.4.6 拦截器配置
3.5 Struts 2的Action
3.5.1 实现Action处理类
3.5.2 Action访问ServletAPI
3.5.3 Action直接访问Servlet API
3.5.4 配置Action
3.5.5 配置Action的默认处理类
3.5.6 动态方法调用
3.5.7 为action元素指定method属性
3.5.8 使用通配符
3.5.9 配置默认的Action
3.6 管理处理结果
3.6.1 处理结果的改进
3.6.2 配置结果
3.6.3 Struts 2支持的处理结果类型
3.6.4 chain结果类型
3.6.5 Dlain Text结果类型
3.6.6 redirect结果类型
3.6.7 redirectAction结果类型
3.6.8 动态结果
3.6.9 请求参数决定结果
3.6.10 全局结果
3.7 属性驱动和模型驱动
3.7.1 模型的作用
3.7.2 使用模型驱动
3.8 Struts 2的异常机制
3.8.1 Struts 2的异常处理哲学
3.8.2 声明式异常捕捉
3.8.3 输出异常信息
3.9 未知处理器
3.10 本章小结
第4章 Struts 2的类型转换
4.1 类型转换的意义
4.1.1 表现层数据处理
4.1.2 传统的类型转换
4.2 Struts 2内建的类型转换器
4.3 基于OGNL的类型转换
4.3.1 使用OGNL转换成Map集合
4.3.2 使用OGNL转换成List集合
4.4 自定义类型转换器
4.4.1 系统需求
4.4.2 实现类型转换器
4.4.3 局部类型转换器
4.4.4 全局类型转换器
4.4.5 局部类型转换器和全局类型转换器的说明
4.4.6 基于Struts 2的类型转换器
4.4.7 数组属性的类型转换器
4.4.8 集合属性的类型转换器
4.5 集合类型转换的高级特性
4.5.1 指定集合元素的类型
4.5.2 为Set集合的元素指定索引属性
4.6 类型转换中的错误处理
4.6.1 类型转换的错误处理流程
4.6.2 处理类型转换错误
4.6.3 输出类型转换错误
4.6.4 处理集合属性的转换错误
4.7 本章小结
第5章 Struts 2的输入校验
5.1 输入校验概述
5.1.1 为什么需要输入校验
5.1.2 客户端校验
5.1.3 服务器端校验
5.1.4 类型转换和输入校验
5.2 基本输入校验
5.2.1 编写校验规则文件
5.2.2 国际化提示信息
5.2.3 使用客户端校验
5.3 校验器的配置风格
5.3.1 字段校验器配置风格
5.3.2 非字段校验器配置风格
5.3.3 短路校验器
5.3.4 校验顺序和短路
5.4 校验文件的搜索规则
5.5 内建校验器
5.5.1 注册校验器
5.5.2 必填校验器
5.5.3 必填字符串校验器
5.5.4 整数校验器
5.5.5 日期校验器
5.5.6 表达式校验器
5.5.7 字段表达式校验器
5.5.8 邮件地址校验器
5.5.9 网址校验器
5.5.10 Visitor校验器
5.5.11 转换校验器
5.5.12 字符串长度校验器
5.5.13 正则表达式校验器
5.6 基于Annotation的输入校验
5.7 手动完成输入校验
5.7.1 重写validate方法
5.7.2 重写validateXxx方法
5.7.3 Struts 2的输入校验流程
5.8 本章小结
第6章 上传和下载文件
6.1 文件上传的原理
6.1.1 表单元素的enctype属性
6.1.2 手动上传
6.1.3 使用Servlet3.0API完成上传
6.2 Struts 2的文件上传
6.2.1 Struts 2的文件上传支持
6.2.2 实现文件上传的Action
6.2.3 配置文件上传的Action
6.2.4 手动实现文件过滤
6.2.5 拦截器实现文件过滤
6.2.6 输出错误提示
6.2.7 文件上传的常量配置
6.3 使用Pell上传
6.4 同时上传多个文件
6.4.1 使用数组同时上传多个文件
6.4.2 使用List同时上传多个文件
6.5 使用Struts 2控制文件下载
6.5.1 实现文件下载的Action
6.5.2 配置Action
6.5.3 下载前的授权控制
6.6 本章小结
第7章 Struts 2的国际化
7.1 程序国际化简介
7.1.1 程序国际化的意义
7.1.2 Java国际化的思路
7.1.3 Java支持的国家和语言
7.1.4 完成程序国际化
7.1.5 使用MessageFormat处理带占位符的消息
7.2 Struts 2的国际化支持
7.2.1 Struts 2的国际化
7.2.2 视图页面的国际化
7.2.3 Action的国际化
7.2.4 使用包范围的国际化资源
7.2.5 使用全局国际化资源
7.2.6 输出带占位符的国际化消息
7.2.7 加载资源文件的顺序
7.3 允许用户自行选择程序语言
7.3.1 Struts 2国际化机制的原理
7.3.2 创建下拉列表框
7.3.3 选择程序语言
7.4 本章小结
第8章 Struts 2的标签库
8.1 Struts 2标签库概述
8.1.1 标签的优势
8.1.2 Struts 2的标签分类
8.2 Struts 2标签入门
8.2.1 使用Struts 2标签的准备
8.2.2 Struts 2的OGNL表达式语言
8.2.3 OGNL中的集合操作
8.2.4 访问静态成员
8.2.5 Lambda(λ)表达式
8.3 控制标签
8.3.1 if/elseif/else标签
8.3.2 iterator标签
8.3.3 append标签
8.3.4 generator标签
8.3.5 merge标签
8.3.6 subset标签
8.3.7 sort标签
8.4 数据标签
8.4.1 action标签
8.4.2 bean标签
8.4.3 date标签
8.4.4 debug标签
8.4.5 i18n标签
8.4.6 include标签
8.4.7 param标签
8.4.8 pmperty标签
8.4.9 push标签
8.4.10 set标签
8.4.11 text标签
8.4.12 url标签
8.5 主题和模板
8.5.1 选择主题
8.5.2 自定义主题
8.6 表单标签
8.6.1 表单标签的通用属性
8.6.2 表单标签的name和value属性
8.6.3 checkboxlist标签
8.6.4 combobox标签
8.6.5 doubleselect标签
8.6.6 head标签
8.6.7 optiontransferselect标签
8.6.8 select标签
8.6.9 radio标签
8.6.10 optgroup标签
8.6.11 token标签
8.6.12 updownselect标签
8.7 非表单标签
8.7.1 actionerror和actionmessage标签
8.7.2 component标签
8.8 本章小结
第9章 Struts 2的拦截器
9.1 理解拦截器
9.1.1 理解DRY规则
9.1.2 拦截器的意义
9.1.3 拦截器的实现原理
9.1.4 拦截器和AOP的关系
9.1.5 拦截器在Struts 2中的作用
9.2 Struts 2内建拦截器介绍
9.2.1 Struts 2内建拦截器
9.2.2 struts—default.xml里配置的拦截器
9.3 拦截器配置初步
9.3.1 配置拦截器
9.3.2 使用拦截器
9.3.3 配置默认的拦截器
9.4 开发自己的拦截器
9.4.1 实现拦截器类
9.4.2 使用拦截器
9.4.3 拦截器和Struts2插件的关系
9.5 深入拦截器编程
9.5.1 拦截方法的拦截器
9.5.2 拦截器的执行顺序
9.5.3 拦截结果的监听器
9.5.4 覆盖拦截器栈里特定拦截器的参数
9.6 拦截器应用示例:实现权限控制
9.6.1 实现拦截器类
9.6.2 配置权限控制拦截器
9.7 本章小结
第10章 Struts 2的Ajax支持
10.1 Struts 2基本的Ajax支持
10.1.1 Ajax技术概述
10.1.2 使用stream结果类型实现Ajax
10.2 基于Dojo的异步表单
10.2.1 安装Dojo插件
10.2.2 定义异步表单
10.2.3 实现Action
10.2.4 实现服务器响应页面
10.3 基于Dojo的Pub-sub事件模型
10.3.1 Pub—Sub原理
10.3.2 Pub-Sub示例
10.3.3 阻止请求
10.4 基于Dojo的Ajax标签
10.4.1 div标签
10.4.2 a和submit标签
10.4.3 autocomDleter标签
10.4.4 tabbedpanel标签
10.4.5 datetimepicker标签
10.4.6 tree和treenode标签
10.4.7 textarea标签
10.4.8 bind标签
10.5 基于JSON插件的Ajax实现
10.5.1 JSON的基本知识
10.5.2 安装Struts 2的JSON插件
10.5.3 实现Action逻辑
10.5.4实现JSP页面
10.6 本章小结
……
第11章 Convention插件与REST支持
第12章 FreeMarker详解
第13章 整合Spring
第14章 整合JSF
第15章 整合SiteMesh
第16章 整合JasperReports
第17章 整合JFreeChart
第18章 整合Hibemate
第19章 “零配置”案例:注册登录系统
第20章 电子拍卖系统
· · · · · · (
收起)