标题：精通JSF
内容简介
《精通JSF——基于EJBHibernateSpring整合开发与项目实践》循序渐进、由浅入深地讲解了如何构架和开发JSF应用程序。全书共16章，分为JSF基础篇、JSF实战技术篇和JSF项目实战篇。其中第1～2章为JSF基础篇，主要介绍JSF的基本结构和工作原理，以及开发环境的安装与配置。第3～12章为JSF实战技术篇，主要介绍了JSF组件、JSF托管Bean、JSF导航、转换器、验证器、国际化、JSF的页面布局方案、Facelets使用、JSF自定义组件以及和JavaScript、Ajax的整合等知识，并结合实例把这些实战技术应用起来，以便达到学通和会用的目的。第13～16章为JSF项目实战篇，主要通过4个项目案例把JSF和目前流行的技术：Spring、Hibernate、EJB3、iBATIS、Ajax整合来完成企业开发。案例中讲解的许多通用的功能模块，读者稍加修改就可以直接应用于自己的项目中。通过这些接近于企业真实项目的案例实践，帮助读者进一步提升实战技能，领悟项目开发中的技巧，从而更加透彻地理解JSF框架，为适应实战应用打下很好的基础。
版权信息
书 名: 精通JSF
作　者：徐明华 郑经煜
出版社： 人民邮电出版社
出版时间： 2009
ISBN: 9787115192134
开本： 16
定价: 49.00 元
编辑推荐
前端技术：JSF页面布局方案，JavaScript、Ajax等技术应用
框架整合：JSF、Spring、Hibernate、EJB等实战开发知识
四大案例：帮助读者提高项目实战水平
留言本系统(JSF+JDBC)
博客管理系统(JSF+Facelets+iBATIS)
新闻发布系统(JSF+EJB)
在线宠物店(JSF+Spring+Hibernate)
开发视频：300多分钟的开发视频，帮助读者顺利完成程序调试
涵盖的核心技术：
JSF开发环境配置
JSF组件
JSF托管Bean
静态导航实例
动态导航实例
转换器实例
自定义转换器
验证器实例
自定义验证器
国际化应用
JSF页面布局
JSF与Ajax整合
JSF自定义组件
留言本系统(JSF+JDBC)
博客管理系统(JSF+Facelets+iBATlS)
新闻发布系统(JSF+EJB)
在线宠物店(JSF+Spring+Hibernate)
目录
第一篇　JSF基础
第1章　JSF和开发环境配置基础知识　2
1.1　获取JSF　2
1.2　安装与配置JDK　3
1.3　Tomcat安装与配置　5
1.4　安装与配置MyEclipse　9
1.5　安装与配置MySQL　11
1.6　小结　14
第2章　创建JSF应用程序　15
2.1　JSF开发环境准备　15
2.1.1　基本要求　15
2.1.2　选择JSF的实现　15
2.2　创建第一个JSF应用　16
2.2.1　运行效果　16
2.2.2　创建Web应用　17
2.2.3　映射一个FacesServlet的实例　17
2.2.4　创建JSF页面　18
2.2.5　定义页面导航　22
2.2.6　创建一个后台Bean　23
2.2.7　添加一个托管Bean声明　24
2.2.8　运行调试　24
2.3　JSF请求处理生命周期详解　25
2.3.1　恢复视图　26
2.3.2　应用请求值　26
2.3.3　处理验证　26
2.3.4　更新模型值　27
2.3.5　调用应用程序　27
2.3.6　呈现响应　27
2.4　第一个JSF应用的请求处理生命周期分析　27
2.5　关于用户界面组件的immediate属性　30
2.6　MVC与JSF　30
2.6.1　经典MVC设计模式　30
2.6.2　JSF的模型、视图和控制器　31
2.7　小结　32
第二篇　JSF实战技术
第3章　JSF组件　34
3.1　HTML标签组件说明　34
3.1.1　输入类标签　36
3.1.2　输出类标签　37
3.1.3　选择类标签　38
3.1.4　命令类标签　42
3.1.5　其他类标签　42
3.1.6　页面绘制实例　43
3.2　Core标签组件说明　45
3.3　事件处理　48
3.3.1　值改变事件　48
3.3.2　动作事件　52
3.4　综合应用　54
3.5　小结　60
第4章　JSF托管Bean　61
4.1　JavaBean类型的托管Bean　61
4.2　容器类型的托管Bean　63
4.3　初始化托管Bean　65
4.3.1　初始化简单对象　65
4.3.2　初始化列表　66
4.4　托管Bean的有效范围　67
4.5　如何外部调用托管Bean　68
4.5.1　在页面上调用Bean　69
4.5.2　在组件中调用Bean　69
4.5.3　在配置文件中调用托管Bean　71
4.6　小结　71
第5章　导航规则　72
5.1　静态导航实例　72
5.1.1　创建Bean文件　73
5.1.2　设置配置文件　73
5.1.3　绘制页面文件　74
5.1.4　设置web.xml　75
5.1.5　使用静态导航的疑问　76
5.2　动态导航实例　76
5.2.1　代码清单　76
5.2.2　配置清单　77
5.2.3　主页面清单　78
5.3　非常规导航　79
5.3.1　值改变事件　79
5.3.2　动作事件　83
5.4　小结　85
第6章　转换器　86
6.1　转换的时机　86
6.2　使用标准转换器　87
6.2.1　标准转换器的使用方法　87
6.2.2　Java基本类型转换器的使用　87
6.2.3　DateTime转换器的使用　88
6.2.4　Number转换器的使用　89
6.3　自定义转换器　89
6.3.1　定义一个类，实现javax.faces.convert.Converter接口　89
6.3.2　在Faces上下文中注册自定义转换器　91
6.3.3　用f:converter/标签在页面中使用自定义转换器　91
6.4　小结　91
第7章　验证器　92
7.1　验证器的基本知识　92
7.1.1　为什么需要验证模型　92
7.1.2　验证的时机　92
7.1.3　使用标准验证器　93
7.2　自定义验证器　93
7.2.1　定义一个类，实现javax.faces.validator.Validator接口　93
7.2.2　在Faces上下文中注册自定义验证器　94
7.2.3　用f:validator/标签在页面中使用自定义验证器　94
7.3　转换器和验证器综合示例　95
7.3.1　创建用户注册的应用　95
7.3.2　创建用户注册所需要绑定的后台Bean　95
7.3.3　配置托管Bean　95
7.3.4　添加自定义转换器和自定义验证器　96
7.3.5　创建用户注册页面　96
7.3.6　配置导航规则　98
7.3.7　运行查看效果　98
7.4　小结　99
第8章　JSF应用的国际化　100
8.1　国际化和本地化的概念　100
8.2　Java对国际化的支持　101
8.2.1　Java国际化原理　101
8.2.2　Java国际化实例　101
8.3　JSF对国际化的支持　102
8.3.1　创建本地化资源文件　102
8.3.2　加载一个资源包　103
8.3.3　引用本地化静态数据　103
8.3.4　引用本地化动态数据　103
8.3.5　引用错误消息　104
8.3.6　图片、日期时间和数字的国际化　105
8.4　JSF国际化综合实例　105
8.4.1　实现用户登录验证的国际化　105
8.4.2　实现自选语言栏　111
8.5　小结　115
第9章　JSF页面布局方案　116
9.1　使用JSP的include实现页面布局　117
9.1.1　include知识介绍　117
9.1.2　include实现页面布局　117
9.2　使用Tiles框架实现页面布局　119
9.2.1　设置Tiles模板引擎　119
9.2.2　使用XML配置模板资源　120
9.2.3　创建用于布局的JSP文件　121
9.2.4　创建内容JSP文件　121
9.2.5　使用Tiles框架的布局方案　122
9.2.6　运行查看效果　122
9.3　小结　122
第10章　Facelets的使用　123
10.1　安装Facelets　123
10.2　使用Facelets进行页面模板化布局　125
10.3　使用JSFC　128
10.4　复合组件　130
10.4.1　创建复合组件定义文件　130
10.4.2　创建Facelets标签库描述文件　131
10.4.3　在web.xml中声明标签库描述文件　131
10.4.4　用命名空间导入标签库描述文件　131
10.5　小结　132
第11章　JSF与Ajax的整合　133
11.1　JSF把输入组件解析成HTML标签的细节　133
11.2　JSF整合Ajax　137
11.2.1　为什么要使用Ajax　137
11.2.2　Ajax简介　137
11.2.3　Ajax的工作原理　137
11.2.4　Ajax示例　138
11.2.5　Ajax4jsf框架　141
11.3　小结　147
第12章　JSF自定义组件　148
12.1　JSF组件模型　148
12.2　JSF自定义组件开发步骤　149
12.2.1　创建自定义的组件类　149
12.2.2　定制渲染器　151
12.2.3　注册组件　151
12.2.4　编写标签处理类　152
12.2.5　创建标签库描述文件来登记这个标签　153
12.3　自定义组件实例：数据分页　156
12.3.1　运行效果　156
12.3.2　分页组件标签解析　156
12.3.3　标签库描述文件　157
12.3.4　标签处理类　158
12.3.5　组件渲染器　159
12.3.6　注册组件　163
12.3.7　组件类　163
12.3.8　一些思考　163
12.4　小结　164
第三篇　JSF项目实战
第13章　留言本(JSF+JDBC)　166
13.1　系统概述　166
13.2　需求分析　166
13.2.1　系统总体设计图　167
13.2.2　用例图　167
13.3　数据库设计　168
13.4　页面代码实现页面间转向的关系　168
13.5　其他功能分析　184
13.6　配置文件　205
13.7　运行工程　208
13.7.1　使用工具　208
13.7.2　工程部署　208
13.7.3　运行程序　209
13.8　小结　211
第14章　博客管理系统(JSF+Facelets+iBATIS)　212
14.1　系统设计　212
14.1.1　功能说明　212
14.1.2　系统架构　214
14.1.3　技术架构　214
14.2　持久层技术iBATIS介绍　214
14.2.1　iBATIS介绍　214
14.2.2　iBATIS的使用　215
14.3　持久层设计　217
14.3.1　数据库表设计　217
14.3.2　创建实体类　218
14.3.3　创建实体类的SQLMap映射文件　220
14.3.4　DAO组件设计　227
14.3.5　DAO接口定义　227
14.3.6　DAO实现类　234
14.4　业务逻辑层开发　245
14.4.1　账户业务逻辑类AccountService　246
14.4.2　文章分类业务逻辑类ArticleTypeService　247
14.4.3　文章业务逻辑类ArticleService　249
14.4.4　文章回复业务逻辑类FeedbackService　253
14.5　Web层设计　255
14.5.1　Web层概述　255
14.5.2　前台浏览各功能模块的设计与实现　261
14.5.3　后台管理各功能模块的设计与实现　274
14.6　分页组件的设计　279
14.6.1　使用方式　279
14.6.2　标签库描述文件　280
14.6.3　标签处理类　282
14.6.4　组件渲染器　283
14.6.5　注册组件　286
14.7　后台管理过滤设计　287
14.8　运行本项目的说明　289
14.8.1　开发环境说明　289
14.8.2　运行环境说明　289
14.8.3　编码说明　289
14.8.4　Jar包说明　289
14.8.5　安装运行说明　289
14.9　小结　290
第15章　新闻发布系统(JSF+EJB)　291
15.1　系统概述　291
15.2　需求分析　291
15.2.1　系统总体设计图　292
15.2.2　用例图　292
15.3　数据库设计　292
15.3.1　数据库需求分析　292
15.3.2　数据库逻辑设计　293
15.3.3　事务处理浅析　294
15.3.4　页面间转向关系　294
15.4　页面代码实现　294
15.5　业务层代码分析　318
15.6　配置文件web.xml　337
15.7　运行工程　337
15.7.1　使用工具　337
15.7.2　工程部署　337
15.7.3　运行程序　338
15.8　小结　339
第16章　在线宠物店(Petstore)(JSF+Spring+Hibernate)　340
16.1　实例功能说明及系统架构　340
16.1.1　实例功能说明　340
16.1.2　系统架构　341
16.2　持久层开发　342
16.2.1　持久层域模型设计　342
16.2.2　持久层DAO组件设计　349
16.3　数据层表结构生成　357
16.3.1　编写hibernate.cfg.xml配置文件　357
16.3.2　编写方法调用SchemaExport类生成数据库脚本　358
16.4　业务逻辑层开发　359
16.4.1　业务逻辑接口设计　359
16.4.2　异常处理　362
16.4.3　实现业务逻辑组件　362
16.4.4　装配业务逻辑组件　368
16.4.5　事务管理　369
16.5　使用服务定位器模式　370
16.5.1　ServiceLocator模式介绍　370
16.5.2　ServiceLocator模式实现　370
16.6　JSF与Spring的整合　372
16.7　Web层设计　372
16.7.1　Web层概述　372
16.7.2　首页的设计与实现　378
16.7.3　浏览宠物模块的设计与实现　381
16.7.4　账户模块的设计与实现　385
16.7.5　购买宠物模块的设计与实现　390
16.8　安全性设计　395
16.9　运行本项目的一些说明　397
16.9.1　开发环境说明　397
16.9.2　查看源码说明　397
16.9.3　运行环境说明　397
16.9.4　编码说明　397
16.9.5　Jar包说明　397
16.9.6　安装运行说明　398
16.10　小结　398 JSF中用户登出返回登录页面问题在页面中使用
<h:commandLink value="[#{msg.logout}]" action="#myBean.logout}"></h:commandLink>
做登出操作的时候，代码如下：
public String logoutHMS() {
String outCome ="logoutSuccess";
System.out.print("Logout!!);
// 设置登录Session关键信息
FacesContext fc = FacesContext.getCurrentInstance();
HttpSession Session = (HttpSession) fc.getExternalContext()
.getSession(false);
Session.invalidate();
return outCome;
}
不能使用actionListener属性，否则退出了，重载不了登录页面。
……