书籍详情
Struts 2.1权威指南
作者:李刚 编著
出版社:电子工业出版社
出版时间:2009-05-01
ISBN:9787121085925
定价:¥85.00
购买这本书可以去
内容简介
《Struts 2.1权威指南—基于WebWork核心的MXC开发》是《Struts 2权威指南》的第二版,本书介绍的Struts 2是最新的Struts 2.1。相对于2007年发布的Struts 2.0,Struts 2.1改变较大,Struts 2.1不仅修正了Struts 2.0中少量Bug(这些Bug在本书第一版中已经指出)。而且新增了REST、Convention和Java Templates,这些都是Struts 2未来的发展方向。不仅如此,Struts 2.1不再支持Ajax主题,而是改为使用Dojo插件来提供对Ajax的支持。Struts 2.1抛弃了Codebehind插件提供的“零配置”支持,改为使用Convention插件提供“零配置”,Struts 2.1新增了Portlet支持……为了让众多Struts学习者、工作者快速从Struts 2.0的开发升级到Struts 2.1,笔者升级了《Struts 2权威指南》,第二版改写了第一版中所有程序,将它们改为基于Struts 2.1运行。第二版删除了第一版中第18章的内容(Struts 2和Struts 1整合部分),全面介绍了Struts 2.1新增的Convention和REST支持。本书最后配备的两个常用的实例也都升级为基于Struts 2.1运行,读者可通过这两个实例触类旁通,解决日常开发中的问题。本书第二版保留了第一版通俗易懂的写作风格:按Struts 2.1的架构体系,细致地介绍了Struts 2.1各个知识点。在介绍过程中,笔者依照读者的学习规律,首先介绍基本概念和基本操作,然后对内容进行深入讲解。笔者在介绍Struts 2.1框架时,既照顾到了Struts 2.1初学者的能力,对每个知识点都给出简单的快速上手的示例;同时也考虑到开发者在日后开发中可能遇到的问题,详细讲解了每个知识点的各种用法,本书覆盖了Struts 2.1近80%的API。因此,本书完全可以作为Struts 2框架的权威手册,以供开发者在实际开发过程中参考。本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为Struts 2框架的权威参考。
作者简介
李刚,从事10多年的Java EE应用开发,现任疯狂软件教育中心教学总监。疯狂Java实训营创始人,疯狂Java体系图书作者。曾任LITEON公司的J2EE技术主管,负责该公司的企业信息化平台的架构设计。曾任广州电信、广东龙泉科技等公司的技术培训导师。曾兼任广东技术师范学院计算机科学系的兼职副教授。2007年3月26日的《电脑报》专访人物。培训的学生已在华为、立信、普信、网易、电信盈科等公司就职。国内著名的高端IT技术作家,已出版《疯狂Java讲义》、《疯狂Android讲义》、《轻量级Java EE企业应用实战》、《疯狂Ajax讲义》、《疯狂XML讲义》、《经典Java EE企业应用实战》、《Struts2.1权威指南》、《Ruby On Rails敏捷开发最佳实践》等著作。其中疯狂Java体系图书都是已经得到广泛的市场认同,并多次重印的畅销图书,并被多家高校选作教材,部分图书已被翻译成繁体中文版、输出到台湾地区。
目录
第1章 Struts 2概述
1.1 MVC思想概述
1.1.1 Web技术的发展
1.1.2 Model 1和Model
1.1.3 MVC思想及其优势
1.1.4 常用的MVC框架
1.2 Struts 2的起源和背景
1.2.1 Struts 1简介及存在的问题
1.2.2 WebWork简介
1.2.3 Struts 2起源
1.3 Struts 2体系介绍
1.3.1 Struts 2框架架构
1.3.2 Struts 2的配置文件
1.3.3 Strut 2的标签库
1.3.4 Struts 2的控制器组件
1.4 Struts 2与Struts 1的对比
1.5 WebWork和Struts 2对比
1.6 本章小结
第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 改善输出页面
2.6.2 使用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 WebWork的MVC实现
3.1.1 WebWork的下载和安装
3.1.2 实现Action
3.1.3 配置Action
3.1.4 完成数据校验
3.1.5 完成应用流程
3.2 在Eclipse中开发Struts
3.2.1 创建Web应用
3.2.2 增加Struts 2支持
3.2.3 部署Struts 2应用
3.2.4 增加应用的Action
3.3 Struts 2的基本流程
3.3.1 核心控制器:FilterDispatcher
3.3.2 业务控制器
3.3.3 Struts 2的模型组件
3.3.4 Struts 2的视图组件
3.3.5 Struts 2的运行流程
3.4 Struts 2的基本配置
3.4.1 配置web.xml文件
3.4.2 struts.xml配置文件
3.4.3 struts.properties配置文件
3.4.4 struts.xml文件结构
3.5 本章小结
第4章 深入Struts
4.1 深入Struts 2的配置文件
4.1.1 Bean配置
4.1.2 常量配置
4.1.3 包配置
4.1.4 命名空间配置
4.1.5 包含配置
4.1.6 拦截器配置
4.2 Struts 2的Action
4.2.1 实现Action处理类
4.2.2 Action访问Servlet API
4.2.3 Action直接访问Servlet API
4.2.4 配置Action
4.2.5 配置Action的默认处理类
4.2.6 动态方法调用
4.2.7 为action元素指定method
4.2.7 属性
4.2.8 使用通配符
4.2.9 配置默认Action
4.3 管理处理结果
4.3.1 处理结果的改进
4.3.2 配置结果
4.3.3 Struts 2支持的处理结果
4.2.7 类型
4.3.4 plainText结果类型
4.3.5 redirect结果类型
4.3.6 redirectAction结果类型
4.3.7 动态结果
4.3.8 请求参数决定结果
4.3.9 全局结果
4.4 属性驱动和模型驱动
4.4.1 模型的作用
4.4.2 使用模型驱动
4.5 Struts 2的异常机制
4.5.1 Struts 2的异常处理哲学
4.5.2 声明式异常捕捉
4.5.3 输出异常信息
4.6 未知处理器
4.7 本章小结
第5章 Struts 2的类型转换
5.1 类型转换的意义
5.1.1 表现层数据处理
5.1.2 类型转换
5.2 Struts 2内建的类型转换器
5.3 基于OGNL的类型转换
5.4 自定义类型转换器
5.4.1 系统需求
5.4.2 实现类型转换器
5.4.3 局部类型转换器
5.4.4 全局类型转换器
5.4.5 基于Struts 2的类型转换器
5.4.6 数组属性的类型转换器
5.4.7 集合属性的类型转换器
5.5 集合类型转换的高级特性
5.5.1 指定集合元素的类型
5.5.2 为Set集合的元素指定
4.2.7 索引属性
5.6 类型转换中错误处理
5.6.1 类型转换的错误处理流程
5.6.2 处理类型转换错误
5.6.3 输出类型转换错误
5.6.4 处理集合属性的转换错误
5.7 本章小结
第6章 Struts 2的输入校验
6.1 输入校验概述
6.1.1 为什么需要输入校验
6.1.2 客户端校验
6.1.3 服务器端校验
6.1.4 类型转换和输入校验
6.2 基本输入校验
6.2.1 编写校验规则文件
6.2.2 国际化提示信息
6.2.3 使用客户端校验
6.3 校验器的配置风格
6.3.1 字段校验器配置风格
6.3.2 非字段校验器配置风格
6.3.3 短路校验器
6.3.4 校验顺序和短路
6.4 校验文件的搜索规则
6.5 内建校验器
6.5.1 注册校验器
6.5.2 必填校验器
6.5.3 必填字符串校验器
6.5.4 整数校验器
6.5.5 日期校验器
6.5.6 表达式校验器
6.5.7 字段表达式校验器
6.5.8 邮件地址校验器
6.5.9 网址校验器
6.5.10 Visitor校验器
6.5.11 转换校验器
6.5.12 字符串长度校验器
6.5.13 正则表达式校验器
6.6 基于Annotation的输入校验
6.7 手动完成输入校验
6.7.1 重写validate()方法
6.7.2 重写validateXxx()方法
6.7.3 Struts 2的输入校验流程
6.8 本章小结
第7章 上传和下载文件
7.1 文件上传的原理
7.1.1 表单元素的enctype属性
7.1.2 手动上传
7.1.3 使用上传框架完成上传
7.2 Struts 2的文件上传
7.2.1 Struts 2的文件上传支持
7.2.2 实现文件上传的Action
7.2.3 配置文件上传的Action
7.2.4 手动实现文件过滤
7.2.5 拦截器实现文件过滤
7.2.6 输出错误提示
7.2.7 文件上传的常量配置
7.3 使用Pell上传
7.4 同时上传多个文件
7.4.1 使用数组同时上传多个文件
7.4.2 使用List同时上传多个文件
7.5 使用Struts 2控制文件下载
7.5.1 实现文件下载的Action
7.5.2 配置Action
7.5.3 下载前的授权控制
7.6 本章小结
第8章 Struts 2的国际化
8.1 程序国际化简介
8.1.1 程序国际化的意义
8.1.2 Java国际化的思路
8.1.3 Java支持的语言和国家
8.1.4 完成程序国际化
8.1.5 使用MessageFormat处理
8.1.5 带占位符的消息
8.1.6 使用类文件代替资源文件
8.2 Struts 2的国际化入门
8.2.1 加载全局资源文件
8.2.2 访问国际化消息
8.2.3 输出带占位符的国际化消息
8.3 加载资源文件的不同方式
8.3.1 包范围资源文件
8.3.2 Action范围资源文件
8.3.3 临时指定资源文件
8.3.4 加载资源文件的顺序
8.4 允许用户自行选择程序语言
8.4.1 Struts 2国际化的运行机制
8.4.2 创建下拉列表框
8.4.3 选择程序语言
8.5 本章小结
第9章 Struts 2的标签库
9.1 Struts 2标签库概述
9.1.1 标签的优势
9.1.2 Struts 2的标签分类
9.2 Struts 2标签入门
9.2.1 使用Struts 2标签的准备
9.2.2 Struts 2的OGNL表达式
9.2.2 语言
9.2.3 OGNL中的集合操作
9.2.4 访问静态成员
9.2.5 Lambda(λ)表达式
9.3 控制标签
9.3.1 if/elseif/else标签
9.3.2 iterator标签
9.3.3 append标签
9.3.4 generator标签
9.3.5 merge标签
9.3.6 subset标签
9.3.7 sort标签
9.4 数据标签
9.4.1 action标签
9.4.2 bean标签
9.4.3 date标签
9.4.4 debug标签
9.4.5 include标签
9.4.6 param标签
9.4.7 push标签
9.4.8 set标签
9.4.9 url标签
9.4.10 property标签
9.5 主题和模板
9.5.1 选择主题
9.5.2 自定义主题
9.6 表单标签
9.6.1 表单标签的通用属性
9.6.2 表单标签的name和
9.6.2 value属性
9.6.3 checkboxlist标签
9.6.4 combobox标签
9.6.5 doubleselect标签
9.6.6 head标签
9.6.7 optiontransferselect标签
9.6.8 select标签
9.6.9 radio标签
9.6.10 optgroup标签
9.6.11 token标签
9.6.12 updownselect标签
9.7 非表单标签
9.7.1 actionerror和actionmessage
9.7.1 标签
9.7.2 component标签
9.8 本章小结
第10章 Struts 2的拦截器
10.1 理解拦截器
10.1.1 理解DRY规则
10.1.2 拦截器的意义
10.1.3 拦截器的实现原理
10.1.4 拦截器和AOP的关系
10.1.5 拦截器在Struts 2中的作用
10.2 拦截器配置初步
10.2.1 配置拦截器
10.2.2 使用拦截器
10.2.3 配置默认拦截器
10.3 Struts 2内建的拦截器
10.3.1 Struts 2内建的拦截器
10.3.2 struts-default.properties里
10.3.2 配置的拦截器
10.4 开发自己的拦截器
10.4.1 实现拦截器类
10.4.2 使用拦截器
10.4.3 拦截器和Struts 2插件的
10.4.3 关系
10.5 深入拦截器编程
10.5.1 拦截方法的拦截器
10.5.2 拦截器的执行顺序
10.5.3 拦截结果的监听器
10.5.4 覆盖拦截器栈里特定
10.5.4 拦截器的参数
10.6 拦截器示例:实现权限控制
10.6.1 实现拦截器类
10.6.2 配置权限控制拦截器
10.7 本章小结
第11章 Struts 2的Ajax支持
11.1 Ajax概述
11.1.1 Ajax的起源和变革
11.1.2 Ajax的核心技术
11.2 Struts 2提供的Ajax支持
11.3 基于Dojo的异步表单
11.3.1 安装Dojo插件
11.3.2 定义异步表单
11.3.3 实现Action
11.3.4 实现服务器响应页面
11.4 基于Dojo的pub-sub事件
11.4 模型
11.4.1 pub-sub的原理
11.4.2 pub-sub的示例
11.4.3 阻止请求
11.5 基于Dojo的Ajax标签
11.5.1 div标签
11.5.2 submit和a标签
11.5.3 autocompleter标签
11.5.4 tabbedpanel标签
11.5.5 datetimepicker
11.5.6 tree和treenode
11.5.7 textarea
11.5.8 bind
11.6 基于JSON插件的Ajax
11.6 实现
11.6.1 JSON的基本知识
11.6.2 安装Struts 2的JSON插件
11.6.3 实现Action逻辑
11.6.4 实现JSP页面
11.7 本章小结
第12章 Struts 2的REST支持
12.1 Codebehind插件和零配置
12.1.1 自动搜索Action
12.1.2 使用Annotation指定命名
12.1.2 空间、父包和结果映射
12.2 Convention插件和零配置
12.2.1 搜索Action
12.2.2 按约定映射Action
12.2.3 按约定映射Result
12.2.4 Action链的约定
12.2.5 自动重加载映射
12.3 Convention插件的相关常量
12.4 Convention的Annotation
12.4.1 Action配置相关的
12.4.1 Annotation
12.4.2 Result配置相关的
12.4.1 Annotation
12.4.3 包和命名空间相关的
12.4.1 Annotation
12.4.4 异常处理相关的Annotation
12.4.5 拦截器配置相关的
12.4.1 Annotation
12.5 REST简介
12.5.1 资源和标识符
12.5.2 操作资源的方式
12.6 Struts 2的REST支持
12.6.1 RestActionMapper简介
12.6.2 安装REST插件
12.6.3 实现支持REST的
12.6.3 Action类
12.6.4 实现视图层
12.7 本章小结
第13章 使用FreeMarker作为
第13章 表现层
13.1 体验FreeMarker
13.1.1 下载和安装FreeMarker
13.1.2 在Java程序中使用
13.1.2 FreeMarker
13.1.3 在Web应用中使用
13.1.2 FreeMarker
13.2 FreeMarker的模板文件
13.2.1 模板结构
13.2.2 FTL指令规则
13.2.3 插值规则
13.3 表达式
13.3.1 直接指定值
13.3.2 输出变量值
13.3.3 字符串操作
13.3.4 集合连接运算符
13.3.5 Map连接运算符
13.3.6 算术运算符
13.3.7 比较运算符
13.3.8 逻辑运算符
13.3.9 内建函数
13.3.10 空值处理运算符
13.3.11 运算符优先级
13.4 FreeMarker的常用指令
13.4.1 if指令
13.4.2 switch、case、default、
13.4.2 break指令
13.4.3 list、break指令
13.4.4 include指令
13.4.5 import指令
13.4.6 noparse指令
13.4.7 escape、noescape指令
13.4.8 assign指令
13.4.9 setting指令
13.4.10 macro、nested、return指令
13.5 使用FreeMarker作为
13.5 Struts 2的视图技术
13.5.1 在FreeMarker模板中
13.5.1 使用Struts 2标签
13.5.2 使用Freemarker Result
13.5.3 解析模板中的变量
13.5.4 访问Servlet/JSP范围的值
13.6 本章小结
第14章 整合Spring
14.1 Spring简介
14.1.1 Spring的起源和核心
14.1.2 使用Spring的IoC容器
14.2 Struts 2插件
14.2.1 插件概述
14.2.2 插件开发概述
14.3 使用Spring插件完成整合
14.3.1 整合Spring前的准备工作
14.3.2 整合Spring的思考
14.4 让Spring管理控制器
14.4.1 整合流程
14.4.2 从页面请求开始
14.4.3 实现控制器逻辑
14.4.4 实现业务逻辑
14.5 使用自动装配
14.5.1 指定自动装配
14.5.2 修改配置文件
14.5.3 改变自动装配策略
14.6 本章小结
第15章 整合JSF
15.1 JSF简介
15.1.1 JSF概述
15.1.2 JSF和Struts 2的对比
15.2 使用MyFaces
15.2.1 下载和安装MyFaces
15.2.2 从输入页面开始
15.2.3 在Web应用中配置MyFaces
15.2.4 实现后台Bean
15.2.5 定义导航规则
15.3 安装JSF插件
15.4 使用JSF插件
15.4.1 实现业务逻辑组件
15.4.2 列出全部图书
15.4.3 添加/修改图书
15.5 整合JSF的思考
15.6 本章小结
第16章 整合SiteMesh
16.1 SiteMesh简介
16.1.1 SiteMesh概述
16.1.2 下载和安装SiteMesh
16.1.3 定义装饰器页面
16.1.4 定义原始页面
16.1.5 更复杂的装饰器页面
16.2 使用SiteMesh插件
16.2.1 安装SiteMesh插件
16.2.2 在Struts 2中使用SiteMesh
16.3 本章小结
第17章 整合JasperReports
17.1 JasperReports简介
17.1.1 下载和安装JasperReports
17.1.2 JasperReports初探
17.1.3 JasperReports的开发流程
17.1.4 解决PDF报表的中文问题
17.2 动态报表
17.2.1 带参数的报表
17.2.2 带查询的报表
17.2.3 以VO集合作为数据源的
17.2.3 动态报表
17.3 使用iReport设计报表
17.3.1 下载和安装iReport
17.3.2 使用iReport
17.3.3 建立数据源
17.3.4 设计报表布局
17.4 安装JasperReports插件
17.5 使用JasperReports报表
17.5.1 创建生成报表的Action
17.5.2 配置生成JasperReports
17.2.3 报表的Action
17.5.3 生成JasperReports报表
17.6 本章小结
第18章 整合JFreeChart
18.1 JFreeChart简介
18.1.1 JFreeChart的下载和安装
18.1.2 使用JFreeChart
18.1.3 JFreeChart开发步骤
18.2 JFreeChart的常用统计图表
18.2.1 柱状图
18.2.2 折线图
18.2.3 时间顺序图
18.3 在网页中生成带交互功能的
18.3 统计图
18.4 安装JFreeChart插件
18.5 在Struts 2应用中使用
18.5 JFreeChart
18.5.1 创建Action类
18.5.2 配置Action
18.6 本章小结
第19章 整合Hibernate
19.1 Hibernate概述
19.1.1 Hibernate的作用
19.1.2 Hibernate的优势
19.2 Hibernate开发入门
19.2.1 Hibernate下载和安装
19.2.2 使用Hibernate保存记录
19.2.3 使用Hibernate查询记录
19.3 Struts 2整合Hibernate的思考
19.3.1 自定义的整合方案
19.3.2 整合方案的实现策略
19.4 整合示例
19.4.1 持久层设计
19.4.2 DAO层设计
19.4.3 业务逻辑层设计
19.4.4 初始化组件工厂
19.4.5 控制器实现
19.5 整合后的思考和Spring框架
19.6 本章小结
第20章 “零配置”案例:注册登录系统
20.1 系统概述
20.1.1 系统功能简介
20.1.2 系统总体设计
20.2 实现Hibernate持久层
20.2.1 编写持久化PO类
20.2.2 编写映射文件
20.3 实现DAO层
20.3.1 管理SessionFactory
20.3.2 编写DAO接口
20.3.3 实现DAO组件
20.3.4 配置DAO组件
20.4 实现业务逻辑层
20.4.1 定义业务逻辑组件接口
20.4.2 提供业务逻辑组件实现类
20.4.3 配置业务逻辑组件
20.5 使用Struts
20.5.1 整合Struts 2和Spring
20.5.2 处理登录
20.5.3 图形验证码
20.5.4 使用Ajax验证用户名
20.5.5 注册新用户
20.6 使用SiteMesh装饰页面
20.7 本章小结
第21章 电子拍卖系统
21.1 系统功能简介和架构设计
21.1.1 系统功能简介
21.1.2 系统架构设计
21.1.3 相关技术介绍
21.2 持久层设计
21.2.1 系统实体
21.2.2 系统E-R图和数据表
21.2.3 实现Hibernate PO
21.2.4 管理SessionFactory
21.3 实现系统DAO层
21.3.1 DAO的基础配置
21.3.2 实现系统DAO组件
21.3.3 配置系统DAO组件
21.4 实现业务逻辑层
21.4.1 定义业务逻辑组件接口
21.4.2 依赖注入DAO组件
21.4.3 业务逻辑组件中的异常
21.4.3 处理
21.4.4 处理用户竞价
21.4.5 判断拍卖物品状态
21.4.6 事务管理
21.4.7 配置业务层组件
21.5 实现系统Web层
21.5.1 配置Struts 2的核心Filter
21.5.2 处理用户登录
21.5.3 图形验证码
21.5.4 Web层的异常处理
21.5.5 登录控制
21.5.6 添加物品
21.5.7 处理用户竞价
21.6 使用SiteMesh页面装饰
21.6.1 在Struts 2中整合SiteMesh
21.6.1 页面装饰
21.6.2 定义页面装饰
21.7 本章小结
1.1 MVC思想概述
1.1.1 Web技术的发展
1.1.2 Model 1和Model
1.1.3 MVC思想及其优势
1.1.4 常用的MVC框架
1.2 Struts 2的起源和背景
1.2.1 Struts 1简介及存在的问题
1.2.2 WebWork简介
1.2.3 Struts 2起源
1.3 Struts 2体系介绍
1.3.1 Struts 2框架架构
1.3.2 Struts 2的配置文件
1.3.3 Strut 2的标签库
1.3.4 Struts 2的控制器组件
1.4 Struts 2与Struts 1的对比
1.5 WebWork和Struts 2对比
1.6 本章小结
第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 改善输出页面
2.6.2 使用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 WebWork的MVC实现
3.1.1 WebWork的下载和安装
3.1.2 实现Action
3.1.3 配置Action
3.1.4 完成数据校验
3.1.5 完成应用流程
3.2 在Eclipse中开发Struts
3.2.1 创建Web应用
3.2.2 增加Struts 2支持
3.2.3 部署Struts 2应用
3.2.4 增加应用的Action
3.3 Struts 2的基本流程
3.3.1 核心控制器:FilterDispatcher
3.3.2 业务控制器
3.3.3 Struts 2的模型组件
3.3.4 Struts 2的视图组件
3.3.5 Struts 2的运行流程
3.4 Struts 2的基本配置
3.4.1 配置web.xml文件
3.4.2 struts.xml配置文件
3.4.3 struts.properties配置文件
3.4.4 struts.xml文件结构
3.5 本章小结
第4章 深入Struts
4.1 深入Struts 2的配置文件
4.1.1 Bean配置
4.1.2 常量配置
4.1.3 包配置
4.1.4 命名空间配置
4.1.5 包含配置
4.1.6 拦截器配置
4.2 Struts 2的Action
4.2.1 实现Action处理类
4.2.2 Action访问Servlet API
4.2.3 Action直接访问Servlet API
4.2.4 配置Action
4.2.5 配置Action的默认处理类
4.2.6 动态方法调用
4.2.7 为action元素指定method
4.2.7 属性
4.2.8 使用通配符
4.2.9 配置默认Action
4.3 管理处理结果
4.3.1 处理结果的改进
4.3.2 配置结果
4.3.3 Struts 2支持的处理结果
4.2.7 类型
4.3.4 plainText结果类型
4.3.5 redirect结果类型
4.3.6 redirectAction结果类型
4.3.7 动态结果
4.3.8 请求参数决定结果
4.3.9 全局结果
4.4 属性驱动和模型驱动
4.4.1 模型的作用
4.4.2 使用模型驱动
4.5 Struts 2的异常机制
4.5.1 Struts 2的异常处理哲学
4.5.2 声明式异常捕捉
4.5.3 输出异常信息
4.6 未知处理器
4.7 本章小结
第5章 Struts 2的类型转换
5.1 类型转换的意义
5.1.1 表现层数据处理
5.1.2 类型转换
5.2 Struts 2内建的类型转换器
5.3 基于OGNL的类型转换
5.4 自定义类型转换器
5.4.1 系统需求
5.4.2 实现类型转换器
5.4.3 局部类型转换器
5.4.4 全局类型转换器
5.4.5 基于Struts 2的类型转换器
5.4.6 数组属性的类型转换器
5.4.7 集合属性的类型转换器
5.5 集合类型转换的高级特性
5.5.1 指定集合元素的类型
5.5.2 为Set集合的元素指定
4.2.7 索引属性
5.6 类型转换中错误处理
5.6.1 类型转换的错误处理流程
5.6.2 处理类型转换错误
5.6.3 输出类型转换错误
5.6.4 处理集合属性的转换错误
5.7 本章小结
第6章 Struts 2的输入校验
6.1 输入校验概述
6.1.1 为什么需要输入校验
6.1.2 客户端校验
6.1.3 服务器端校验
6.1.4 类型转换和输入校验
6.2 基本输入校验
6.2.1 编写校验规则文件
6.2.2 国际化提示信息
6.2.3 使用客户端校验
6.3 校验器的配置风格
6.3.1 字段校验器配置风格
6.3.2 非字段校验器配置风格
6.3.3 短路校验器
6.3.4 校验顺序和短路
6.4 校验文件的搜索规则
6.5 内建校验器
6.5.1 注册校验器
6.5.2 必填校验器
6.5.3 必填字符串校验器
6.5.4 整数校验器
6.5.5 日期校验器
6.5.6 表达式校验器
6.5.7 字段表达式校验器
6.5.8 邮件地址校验器
6.5.9 网址校验器
6.5.10 Visitor校验器
6.5.11 转换校验器
6.5.12 字符串长度校验器
6.5.13 正则表达式校验器
6.6 基于Annotation的输入校验
6.7 手动完成输入校验
6.7.1 重写validate()方法
6.7.2 重写validateXxx()方法
6.7.3 Struts 2的输入校验流程
6.8 本章小结
第7章 上传和下载文件
7.1 文件上传的原理
7.1.1 表单元素的enctype属性
7.1.2 手动上传
7.1.3 使用上传框架完成上传
7.2 Struts 2的文件上传
7.2.1 Struts 2的文件上传支持
7.2.2 实现文件上传的Action
7.2.3 配置文件上传的Action
7.2.4 手动实现文件过滤
7.2.5 拦截器实现文件过滤
7.2.6 输出错误提示
7.2.7 文件上传的常量配置
7.3 使用Pell上传
7.4 同时上传多个文件
7.4.1 使用数组同时上传多个文件
7.4.2 使用List同时上传多个文件
7.5 使用Struts 2控制文件下载
7.5.1 实现文件下载的Action
7.5.2 配置Action
7.5.3 下载前的授权控制
7.6 本章小结
第8章 Struts 2的国际化
8.1 程序国际化简介
8.1.1 程序国际化的意义
8.1.2 Java国际化的思路
8.1.3 Java支持的语言和国家
8.1.4 完成程序国际化
8.1.5 使用MessageFormat处理
8.1.5 带占位符的消息
8.1.6 使用类文件代替资源文件
8.2 Struts 2的国际化入门
8.2.1 加载全局资源文件
8.2.2 访问国际化消息
8.2.3 输出带占位符的国际化消息
8.3 加载资源文件的不同方式
8.3.1 包范围资源文件
8.3.2 Action范围资源文件
8.3.3 临时指定资源文件
8.3.4 加载资源文件的顺序
8.4 允许用户自行选择程序语言
8.4.1 Struts 2国际化的运行机制
8.4.2 创建下拉列表框
8.4.3 选择程序语言
8.5 本章小结
第9章 Struts 2的标签库
9.1 Struts 2标签库概述
9.1.1 标签的优势
9.1.2 Struts 2的标签分类
9.2 Struts 2标签入门
9.2.1 使用Struts 2标签的准备
9.2.2 Struts 2的OGNL表达式
9.2.2 语言
9.2.3 OGNL中的集合操作
9.2.4 访问静态成员
9.2.5 Lambda(λ)表达式
9.3 控制标签
9.3.1 if/elseif/else标签
9.3.2 iterator标签
9.3.3 append标签
9.3.4 generator标签
9.3.5 merge标签
9.3.6 subset标签
9.3.7 sort标签
9.4 数据标签
9.4.1 action标签
9.4.2 bean标签
9.4.3 date标签
9.4.4 debug标签
9.4.5 include标签
9.4.6 param标签
9.4.7 push标签
9.4.8 set标签
9.4.9 url标签
9.4.10 property标签
9.5 主题和模板
9.5.1 选择主题
9.5.2 自定义主题
9.6 表单标签
9.6.1 表单标签的通用属性
9.6.2 表单标签的name和
9.6.2 value属性
9.6.3 checkboxlist标签
9.6.4 combobox标签
9.6.5 doubleselect标签
9.6.6 head标签
9.6.7 optiontransferselect标签
9.6.8 select标签
9.6.9 radio标签
9.6.10 optgroup标签
9.6.11 token标签
9.6.12 updownselect标签
9.7 非表单标签
9.7.1 actionerror和actionmessage
9.7.1 标签
9.7.2 component标签
9.8 本章小结
第10章 Struts 2的拦截器
10.1 理解拦截器
10.1.1 理解DRY规则
10.1.2 拦截器的意义
10.1.3 拦截器的实现原理
10.1.4 拦截器和AOP的关系
10.1.5 拦截器在Struts 2中的作用
10.2 拦截器配置初步
10.2.1 配置拦截器
10.2.2 使用拦截器
10.2.3 配置默认拦截器
10.3 Struts 2内建的拦截器
10.3.1 Struts 2内建的拦截器
10.3.2 struts-default.properties里
10.3.2 配置的拦截器
10.4 开发自己的拦截器
10.4.1 实现拦截器类
10.4.2 使用拦截器
10.4.3 拦截器和Struts 2插件的
10.4.3 关系
10.5 深入拦截器编程
10.5.1 拦截方法的拦截器
10.5.2 拦截器的执行顺序
10.5.3 拦截结果的监听器
10.5.4 覆盖拦截器栈里特定
10.5.4 拦截器的参数
10.6 拦截器示例:实现权限控制
10.6.1 实现拦截器类
10.6.2 配置权限控制拦截器
10.7 本章小结
第11章 Struts 2的Ajax支持
11.1 Ajax概述
11.1.1 Ajax的起源和变革
11.1.2 Ajax的核心技术
11.2 Struts 2提供的Ajax支持
11.3 基于Dojo的异步表单
11.3.1 安装Dojo插件
11.3.2 定义异步表单
11.3.3 实现Action
11.3.4 实现服务器响应页面
11.4 基于Dojo的pub-sub事件
11.4 模型
11.4.1 pub-sub的原理
11.4.2 pub-sub的示例
11.4.3 阻止请求
11.5 基于Dojo的Ajax标签
11.5.1 div标签
11.5.2 submit和a标签
11.5.3 autocompleter标签
11.5.4 tabbedpanel标签
11.5.5 datetimepicker
11.5.6 tree和treenode
11.5.7 textarea
11.5.8 bind
11.6 基于JSON插件的Ajax
11.6 实现
11.6.1 JSON的基本知识
11.6.2 安装Struts 2的JSON插件
11.6.3 实现Action逻辑
11.6.4 实现JSP页面
11.7 本章小结
第12章 Struts 2的REST支持
12.1 Codebehind插件和零配置
12.1.1 自动搜索Action
12.1.2 使用Annotation指定命名
12.1.2 空间、父包和结果映射
12.2 Convention插件和零配置
12.2.1 搜索Action
12.2.2 按约定映射Action
12.2.3 按约定映射Result
12.2.4 Action链的约定
12.2.5 自动重加载映射
12.3 Convention插件的相关常量
12.4 Convention的Annotation
12.4.1 Action配置相关的
12.4.1 Annotation
12.4.2 Result配置相关的
12.4.1 Annotation
12.4.3 包和命名空间相关的
12.4.1 Annotation
12.4.4 异常处理相关的Annotation
12.4.5 拦截器配置相关的
12.4.1 Annotation
12.5 REST简介
12.5.1 资源和标识符
12.5.2 操作资源的方式
12.6 Struts 2的REST支持
12.6.1 RestActionMapper简介
12.6.2 安装REST插件
12.6.3 实现支持REST的
12.6.3 Action类
12.6.4 实现视图层
12.7 本章小结
第13章 使用FreeMarker作为
第13章 表现层
13.1 体验FreeMarker
13.1.1 下载和安装FreeMarker
13.1.2 在Java程序中使用
13.1.2 FreeMarker
13.1.3 在Web应用中使用
13.1.2 FreeMarker
13.2 FreeMarker的模板文件
13.2.1 模板结构
13.2.2 FTL指令规则
13.2.3 插值规则
13.3 表达式
13.3.1 直接指定值
13.3.2 输出变量值
13.3.3 字符串操作
13.3.4 集合连接运算符
13.3.5 Map连接运算符
13.3.6 算术运算符
13.3.7 比较运算符
13.3.8 逻辑运算符
13.3.9 内建函数
13.3.10 空值处理运算符
13.3.11 运算符优先级
13.4 FreeMarker的常用指令
13.4.1 if指令
13.4.2 switch、case、default、
13.4.2 break指令
13.4.3 list、break指令
13.4.4 include指令
13.4.5 import指令
13.4.6 noparse指令
13.4.7 escape、noescape指令
13.4.8 assign指令
13.4.9 setting指令
13.4.10 macro、nested、return指令
13.5 使用FreeMarker作为
13.5 Struts 2的视图技术
13.5.1 在FreeMarker模板中
13.5.1 使用Struts 2标签
13.5.2 使用Freemarker Result
13.5.3 解析模板中的变量
13.5.4 访问Servlet/JSP范围的值
13.6 本章小结
第14章 整合Spring
14.1 Spring简介
14.1.1 Spring的起源和核心
14.1.2 使用Spring的IoC容器
14.2 Struts 2插件
14.2.1 插件概述
14.2.2 插件开发概述
14.3 使用Spring插件完成整合
14.3.1 整合Spring前的准备工作
14.3.2 整合Spring的思考
14.4 让Spring管理控制器
14.4.1 整合流程
14.4.2 从页面请求开始
14.4.3 实现控制器逻辑
14.4.4 实现业务逻辑
14.5 使用自动装配
14.5.1 指定自动装配
14.5.2 修改配置文件
14.5.3 改变自动装配策略
14.6 本章小结
第15章 整合JSF
15.1 JSF简介
15.1.1 JSF概述
15.1.2 JSF和Struts 2的对比
15.2 使用MyFaces
15.2.1 下载和安装MyFaces
15.2.2 从输入页面开始
15.2.3 在Web应用中配置MyFaces
15.2.4 实现后台Bean
15.2.5 定义导航规则
15.3 安装JSF插件
15.4 使用JSF插件
15.4.1 实现业务逻辑组件
15.4.2 列出全部图书
15.4.3 添加/修改图书
15.5 整合JSF的思考
15.6 本章小结
第16章 整合SiteMesh
16.1 SiteMesh简介
16.1.1 SiteMesh概述
16.1.2 下载和安装SiteMesh
16.1.3 定义装饰器页面
16.1.4 定义原始页面
16.1.5 更复杂的装饰器页面
16.2 使用SiteMesh插件
16.2.1 安装SiteMesh插件
16.2.2 在Struts 2中使用SiteMesh
16.3 本章小结
第17章 整合JasperReports
17.1 JasperReports简介
17.1.1 下载和安装JasperReports
17.1.2 JasperReports初探
17.1.3 JasperReports的开发流程
17.1.4 解决PDF报表的中文问题
17.2 动态报表
17.2.1 带参数的报表
17.2.2 带查询的报表
17.2.3 以VO集合作为数据源的
17.2.3 动态报表
17.3 使用iReport设计报表
17.3.1 下载和安装iReport
17.3.2 使用iReport
17.3.3 建立数据源
17.3.4 设计报表布局
17.4 安装JasperReports插件
17.5 使用JasperReports报表
17.5.1 创建生成报表的Action
17.5.2 配置生成JasperReports
17.2.3 报表的Action
17.5.3 生成JasperReports报表
17.6 本章小结
第18章 整合JFreeChart
18.1 JFreeChart简介
18.1.1 JFreeChart的下载和安装
18.1.2 使用JFreeChart
18.1.3 JFreeChart开发步骤
18.2 JFreeChart的常用统计图表
18.2.1 柱状图
18.2.2 折线图
18.2.3 时间顺序图
18.3 在网页中生成带交互功能的
18.3 统计图
18.4 安装JFreeChart插件
18.5 在Struts 2应用中使用
18.5 JFreeChart
18.5.1 创建Action类
18.5.2 配置Action
18.6 本章小结
第19章 整合Hibernate
19.1 Hibernate概述
19.1.1 Hibernate的作用
19.1.2 Hibernate的优势
19.2 Hibernate开发入门
19.2.1 Hibernate下载和安装
19.2.2 使用Hibernate保存记录
19.2.3 使用Hibernate查询记录
19.3 Struts 2整合Hibernate的思考
19.3.1 自定义的整合方案
19.3.2 整合方案的实现策略
19.4 整合示例
19.4.1 持久层设计
19.4.2 DAO层设计
19.4.3 业务逻辑层设计
19.4.4 初始化组件工厂
19.4.5 控制器实现
19.5 整合后的思考和Spring框架
19.6 本章小结
第20章 “零配置”案例:注册登录系统
20.1 系统概述
20.1.1 系统功能简介
20.1.2 系统总体设计
20.2 实现Hibernate持久层
20.2.1 编写持久化PO类
20.2.2 编写映射文件
20.3 实现DAO层
20.3.1 管理SessionFactory
20.3.2 编写DAO接口
20.3.3 实现DAO组件
20.3.4 配置DAO组件
20.4 实现业务逻辑层
20.4.1 定义业务逻辑组件接口
20.4.2 提供业务逻辑组件实现类
20.4.3 配置业务逻辑组件
20.5 使用Struts
20.5.1 整合Struts 2和Spring
20.5.2 处理登录
20.5.3 图形验证码
20.5.4 使用Ajax验证用户名
20.5.5 注册新用户
20.6 使用SiteMesh装饰页面
20.7 本章小结
第21章 电子拍卖系统
21.1 系统功能简介和架构设计
21.1.1 系统功能简介
21.1.2 系统架构设计
21.1.3 相关技术介绍
21.2 持久层设计
21.2.1 系统实体
21.2.2 系统E-R图和数据表
21.2.3 实现Hibernate PO
21.2.4 管理SessionFactory
21.3 实现系统DAO层
21.3.1 DAO的基础配置
21.3.2 实现系统DAO组件
21.3.3 配置系统DAO组件
21.4 实现业务逻辑层
21.4.1 定义业务逻辑组件接口
21.4.2 依赖注入DAO组件
21.4.3 业务逻辑组件中的异常
21.4.3 处理
21.4.4 处理用户竞价
21.4.5 判断拍卖物品状态
21.4.6 事务管理
21.4.7 配置业务层组件
21.5 实现系统Web层
21.5.1 配置Struts 2的核心Filter
21.5.2 处理用户登录
21.5.3 图形验证码
21.5.4 Web层的异常处理
21.5.5 登录控制
21.5.6 添加物品
21.5.7 处理用户竞价
21.6 使用SiteMesh页面装饰
21.6.1 在Struts 2中整合SiteMesh
21.6.1 页面装饰
21.6.2 定义页面装饰
21.7 本章小结
猜您喜欢