标题：JSF实战
基本信息
原书名： JavaServer Faces in Action  JSF实战原出版社： Manning Publications
作者： (美)Kito Mann   
译者： 铁手 程晓冬 何勇
丛书名： 图灵程序设计丛书.Java系列
出版社：人民邮电出版社
ISBN：9787115155917
上架时间：2007-3-5
出版日期：2007 年3月
开本：16开
页码：509
版次：1-1
内容简介
jsf是sun公司j2ee标准指定的web应用框架，得到了众多厂商的支持。本书是jsf方面的名著，共分五个部分。第一部分是jsf基础知识；第二部分是构建ui；第三部分研究将原型转化为实际应用所需的应用代码；第四部分从组件开发的角度来研究jsf；第五部分基于第四部分所讲述的知识给出了大量示例。本书作者是jsf界的权威，在书中提供了大量的实际经验。.
本书适合正在开发java web应用的架构师、应用开发人员阅读。
jsf是基于组件的javaee标准web框架，得到了业界各大厂商的普遍支持。本书是jsf领域的一部名著，是世界顶尖jsf专家的经验结晶。..
本书集教程、案例和参考于一身，讲解了何为jsf，它的工作原理，如何应用jsf开发web程序的界面，如何与struts、jsp和xul等技术结合。书中还讲解了标准组件、呈现器、转换器和验证器的各种细节，以及如何应用它们来构建实际应用。
另外，在本书的配套网页上为读者免费提供了近300页极具价值的扩展内容，包括开发各种组件、呈现器、验证器和转换器的示例和jsf参考。
目录
第一部分  jsf探秘
第1章　jsf介绍  .      2
1.1  这是rad化的世界        2
1.1.1  什么是jsf        3
1.1.2  业界支持        7
1.2  幕后的技术        7
1.2.1  http        7
1.2.2  servlet        8
1.2.3  portlet        9
1.2.4  javabeans        9
1.2.5  jsp和其他显示技术        10
1.3  框架，框架，还是框架        10
1.3.1  为什么使用框架        11
1.3.2  它是模型2的        11
1.3.3  jsf、struts以及其他框架        12
1.4  组件无处不在        14
1.5  hello, world!        15
1.5.1  解剖hello.jsp        17
1.5.2  解剖goodbye.jsp        22
1.5.3  检视hellobean类        23
.1.5.4  通过faces-config.xml进行配置        25
1.5.5  配置web.xml        26
1.6  小结        27
第2章　jsf基础        28
2.1  关键部件        28
2.1.1  ui组件        30
2.1.2  呈现器        31
2.1.3  验证器        32
2.1.4  后台bean        33
2.1.5  转换器        34
2.1.6  事件和监听器        35
2.1.7  消息        40
2.1.8  导航        40
2.2  请求处理生命周期        41
2.2.1  阶段1：恢复视图        44
2.2.2  阶段2：应用请求值        46
2.2.3  阶段3：处理验证        47
2.2.4  阶段4：更新模型值        47
2.2.5  阶段5：调用应用        48
2.2.6  阶段6：呈现响应        49
2.3  理解组件和客户端标识符        49
2.3.1  命名容器        52
2.3.2  引用标识符        53
2.4  jsf表达式语言        54
2.4.1  作用域变量        57
2.4.2  使用隐含变量        58
2.4.3  在组件中使用el        60
2.5  小结        62
第3章　热身：初识jsf        64
3.1  设置jsf环境        64
3.1.1  基本要求        64
3.1.2  选择jsf实现        65
3.1.3  目录结构        65
3.1.4  配置        66
3.2  jsp的角色        73
3.2.1  使用jsp包含        74
3.2.2  与jstl以及其他jsp定制标签一起使用jsf        75
3.3  创建和初始化bean        80
3.3.1  声明受管bean        82
3.3.2  将list和map声明为受管bean        90
3.3.3  通过值绑定表达式设置值        93
3.4  在页面海洋中导航        95
3.5  小结        101
第4章　从标准组件开始        102
4.1  一切尽在组件中        102
4.1.1  使用html属性        104
4.1.2  理解facet        106
4.1.3  工具的威力        106
4.1.4  幕后的呈现包        108
4.2  组件的通用属性        108
4.3  用uiviewroot控制页面        109
4.4  用uiparameter设置组件参数        110
4.5  使用output组件显示数据        112
4.5.1  使用htmloutputtext显示普通文本        112
4.5.2  与＜f:verbatim＞标签一起使用uioutput        113
4.5.3  使用htmloutputlabel创建输入标注        116
4.5.4  使用htmloutputformat输出参数化文本        117
4.5.5  使用htmloutputlink显示超链接        121
4.6  使用htmlgraphicimage显示图像        122
4.7  使用htmlmessage显示组件消息        123
4.8  使用htmlmessages显示应用消息        126
4.9  使用面板组件进行分组和布局        127
4.9.1  使用htmlpanelgroup分组组件        128
4.9.2  使用htmlpanelgrid创建表格        129
4.10  小结        133
第5章　使用输入组件和数据表格组件        135
5.1  注册事件监听器        135
5.1.1  声明值改变事件        136
5.1.2  声明动作事件        136
5.2  通用组件属性        137
5.3  使用htmlform处理表单        138
5.4  处理基本用户输入        140
5.4.1  使用htmlinputtext显示基本文本框        140
5.4.2  使用htmlinputtextarea显示备注字段        141
5.4.3  使用htmlinputsecret显示口令字段        142
5.4.4  使用htmlinputhidden声明隐藏字段        143
5.5  使用htmlselectbooleancheckbox来显示复选框        144
5.6  定义条目列表        144
5.6.1  用uiselectitem表示单选条目        145
5.6.2  uiselectitems用作多选条目        147
5.7  处理多项选择        148
5.7.1  htmlselectmanycheckbox用作复选框组        149
5.7.2  使用htmlselectmanylistbox显示列表框        151
5.7.3  htmlselectmanymenu用作单选列表框        152
5.8  处理单项选择        153
5.8.1  htmlselectoneradio用作单选按钮组        154
5.8.2  用htmlselectonelistbox显示单选列表框        156
5.8.3  使用htmlselectonemenu显示组合框        157
5.9  执行应用命令        158
5.9.1  使用htmlcommandbutton声明按钮        158
5.9.2  使用htmlcommandlink创建动作链接        160
5.10  使用htmldatatable显示数据集        162
5.11  小结        168
第6章　国际化、验证器和转换器        170
6.1  国际化和本地化        170
6.1.1  探究场所        171
6.1.2  创建资源束        173
6.1.3  在组件中使用资源束        174
6.1.4  从后台代码国际化字符串        177
6.2  输入验证        177
6.2.1  使用验证器方法        177
6.2.2  使用验证器        178
6.2.3  使用标准验证器        179
6.2.4  综合不同验证器        181
6.3  类型转换和格式化        182
6.3.1  使用转换器        184
6.3.2  使用标准转换器        185
6.4  定制应用消息        195
6.5  小结        198
第二部分  构建用户界面
第7章　projecttrack介绍        200
7.1  需求        200
7.2  概念模型        203
7.3  用户界面        204
7.4  开发团队        206
7.5  小结        206
第8章　不用java编码开发用户界面：登录页面        207
8.1  开始        208
8.1.1  设置web.xml        209
8.1.2  设置faces-config.xml        210
8.2  创建login页面        210
8.2.1  从htmlgraphicimage和htmloutputtext组件开始        211
8.2.2  添加一个表单        213
8.3  装扮一下        218
8.3.1  对按钮使用图像        218
8.3.2  集成javascript        219
8.3.3  添加css        220
8.4  添加验证器        221
8.5  用htmlpanelgrid改善布局        224
8.6  小结        229
第9章　不用java编码开发用户界面：其他页面        231
9.1  使用定制组件构建页面头部        231
9.1.1  使用定制的工具条组件        235
9.1.2  配置导航规则        236
9.2  使用面板建立数据表格原型        237
9.2.1  inbox页面        238
9.2.2  配置导航规则        241
9.2.3  show all页面        242
9.2.4  配置导航规则        242
9.3  创建输入表单        243
9.3.1  approve a project页面        243
9.3.2  配置导航规则        248
9.3.3  reject a project页面        248
9.3.4  配置导航规则        250
9.3.5  create a project页面        251
9.3.6  配置导航规则        255
9.4  project details页面        256
9.5  小结        260
第10章　集成应用系统功能        261
10.1  理解jsf开发方法        261
10.2  探究应用程序环境        263
10.3  基于安全重组页面        265
10.4  login页面        266
10.5  header页面        270
10.6  集成数据表格        273
10.6.1  inbox页面        273
10.6.2  show all页面        280
10.7  集成输入表单        280
10.7.1  更新包含页面        280
10.7.2  approve a project页面        283
10.7.3  reject a project页面        285
10.7.4  create a project页面        286
10.8  project details页面        289
10.9  添加错误页面        294
10.9.1  更新web.xml文件        295
10.9.2  更新导航规则        295
10.10  国际化和本地化ui        296
10.10.1  将文本提取到资源束中        296
10.10.2  国际化header        297
10.10.3  本地化为俄语        299
10.11  小结        301
第三部分  开发应用程序逻辑
第11章　jsf环境        304
11.1  从servlet到jsf        304
11.2  应用程序基础        306
11.2.1  application类        307
11.2.2  求解表达式        309
11.3  一切尽在上下文        311
11.3.1  facescontext        312
11.3.2  facesmessage        313
11.3.3  externalcontext        315
11.4  事件处理    ..    318
11.4.1  facesevent        319
11.4.2  处理动作事件        320
11.4.3  处理值改变事件        322
11.4.4  处理阶段事件        323
11.5  再探组件        325
11.5.1  ui组件        328
11.5.2  uiviewroot        330
11.5.3  valueholder        333
11.5.4  editablevalueholder        334
11.5.5  selectitem和selectitemgroup模型bean        335
11.6  小结        337
第12章　应用程序设计和基本类        338
12.1  饼的层次        338
12.2  烘烤豆子        340
12.2.1  tostring方法的重要性        341
12.2.2  序列化        342
12.2.3  一切尽在属性中        342
12.2.4  暴露bean        350
12.3  分析业务层和数据层        351
12.4  开发应用层        353
12.4.1  处理常数        354
12.4.2  组织工具方法        356
12.4.3  初始化singleton        358
12.4.4  适配业务对象        360
12.5  编写一个管理会话状态的visit对象        365
12.6  开发一个后台bean 基类        368
12.7  小结        371
第13章　后台bean、安全和国际化        372
13.1  编写后台bean        372
13.1.1  线程安全        373
13.1.2  处理错误        373
13.1.3  执行认证        376
13.1.4  使用uidata和参数化监听器列出项目        381
13.1.5  修改项目        391
13.1.6  创建新项目        395
13.1.7  使用uidata对项目历史分页        400
13.1.8  使用jdbc resultsets和uidata        406
13.2  加入安全机制        410
13.2.1  基于容器的安全和定制的安全        410
13.2.2  使用定制安全        411
13.3  在代码中支持国际化        415
13.3.1  使用资源束国际化文本        415
13.3.2  国际化消息        419
13.4  设计推论和替代选择        423
13.4.1  访问业务层        423
13.4.2  按功能组织bean        424
13.4.3  用后台bean实现的动作方法        425
13.4.4  通过受管bean 创建工具初始化bean 属性        426
13.5  小结        426
第14章　集成jsf与struts及现有应用        428
14.1  集成意味着什么        428
14.2  何时需要与其他框架一起使用jsf        429
14.3  请求和响应的多面性        429
14.4  集成jsf与struts应用        431
14.4.1  第一步        433
14.4.2  迁移struts jsp标签        434
14.4.3  使用jsf动作方法和受管bean        451
14.4.4  谁控制谁        452
14.5  集成jsf和非struts应用        453
14.6  小结        454
第四部分  编写定制组件、呈现器、验证器和转换器
第15章　jsf环境：组件开发者的视角        456
15.1  三步骤至ui扩展架构之天堂        456
15.2  开发ui 组件        457
15.2.1  决定何时编写ui组件        458
15.2.2  类和接口        459
15.2.3  通过方法绑定进行事件处理        469
15.2.4  注册        470
15.2.5  jsp集成        472
15.3  开发呈现器        479
15.3.1  决定何时需要编写呈现器        482
15.3.2  renderer类        483
15.3.3  renderkit类        484
15.3.4  注册        485
15.3.5  jsp集成        488
15.4  开发验证器        488
15.4.1  validator接口        489
15.4.2  注册        490
15.4.3  jsp集成        492
15.5  开发转换器        493
15.5.1  converter接口        494
15.5.2  注册        495
15.5.3  jsp集成        497
15.6  处理国际化        498
15.7  封包ui扩展        498
15.8  小结        499
附录a　在非jsp环境中使用jsf        501
a.1  jsf如何处理显示技术        501
a.2  使用基于类的页面创建视图        502
a.3  通过xul创建视图        504
a.4  其他选择        506
参考文献        507
第五部分  编写定制组件、呈现器、验证器和转换器：示例1
第16章  uiinputdate：一个简单的输入组件        512
16.1  编写uiinputdate类        513
16.1.1  编码        514
16.1.2  解码        520
16.1.3  实现stateholder方法        521
16.2  注册组件        522
16.3  jsp集成        522
16.3.1  编写jsp 定制标签        522
16.3.2  验证标签        524
16.3.3  将标签添加到标签库        525
16.4  使用组件        527
16.5  小结        528
第17章  rolloverbutton呈现器：javascript支持的呈现器        530
17.1  编写rolloverbuttonrender类        532
17.1.1  编码        533
17.1.2  解码        536
17.1.3  注册呈现器        537
17.2  jsp集成        537
17.2.1  编写htmlbasetag类        538
17.2.2  编写jsp定制标签        540
17.2.3  验证标签        543
17.2.4  将标签添加到标签库中        544
17.3  使用呈现器        546
17.4  包装现有的呈现器        548
17.5  小结        552
第18章  uiheadlineviewer：一个复合的数据感知组件        553
18.1  rss和informa api        555
18.2  在informa中使用uidata        558
18.3  子类化datamodel        559
18.4  编写uiheadlineviewer类        562
18.5  注册组件        573
18.6  jsp集成        574
18.6.1  编写jsp定制标签        574
18.6.2  将标签添加到标签库        580
18.7  使用组件        581
18.8  小结        585
第19章  uinavigator：模型驱动的工具条组件        586
19.1  编写模型类        588
19.2  编写uinavigator类        591
19.2.1  实现actionsource方法        593
19.2.2  覆盖uicomponentbase方法        595
19.2.3  实现stateholder方法        597
19.2.4  开发navigatoractionlistener：一个定制actionlistene  598
19.3  注册组件        599
19.4  编写toolbarrenderer 类        599
19.4.1  编码        600
19.4.2  解码        607
19.5  注册呈现器        608
19.6  jsp集成        608
19.6.1  编写navigatortoolbartag组件标签        609
19.6.2  编写navigatoritemtag 标签处理器        612
19.6.3  将标签添加到标签库        616
19.7  使用组件        619
19.8  小结        622
第20章  验证器和转换器：示例        624
20.1  验证器方法和验证器类        624
20.2  开发验证器        624
20.2.1  编写regularexpression- validator类        626
20.2.2  注册验证器        630
20.2.3  与jsp集成        631
20.2.4  使用验证器        634
20.3  何时定制转换器是必要的        636
20.4  开发转换器        636
20.4.1  编写userconverter类        638
20.4.2  注册转换器        646
20.4.3  jsp集成        647
20.4.4  使用转换器        651
20.5  小结        652
附录b  jsf ide和实现概览        653
b.1  使用 jsf with oracle jdeveloper        653
b.1.1  oracle对jsf的看法        654
b.1.2  何为adf faces 组件        654
b.1.3  jdeveloper 探究        656
b.1.4  构建projecttrack的登录页面        657
b.1.5  夸奖一番        668
b.2  在websphere studio中使用jsf        668
b.2.1  探究websphere studio        668
b.2.2  构建projecttrack的login页面        670
b.2.3  夸奖一番        681
b.3  jsf和java studio creator        682
b.3.1  使用java studio creator        682
b.3.2  构建projecttrack的login页面        684
b.3.3  夸奖一番        692
b.4  jsf实现        693
附录c  扩展核心jsf类        694
c.1  隐藏于幕后的类        694
c.2  替换或者扩展可插入类        698
c.2.1  配置可插入类        698
c.2.2  装饰可插入类        699
c.2.3  替换可插入类        703
附录d  jsf配置        712
d.1  公共属性        713
d.2  公共元素        713
d.2.1  ＜icon＞        713
d.2.2  ＜property＞        714
d.2.3  ＜attribute＞        714
d.2.4  ＜facet＞        715
d.3  日常配置和可插入类        715
d.3.1  ＜application＞        715
d.3.2  ＜managed-bean＞        716
d.3.3  ＜referenced-bean＞        718
d.3.4  ＜navigation-rule＞        718
d.4  用户界面扩展        719
d.4.1  ＜component]＞720
d.4.2  ＜render-kit＞        720
d.4.3  ＜validator]＞721
d.4.4  ＜converter＞        722
d.5  高级特征        722
d.5.1  ＜lifecycle＞        722
d.5.2  ＜factory＞        722
附录e  时区、国家（地区）、语言和货币代码        724
e.1  时区代码        724
e.2  语言代码        733
e.3  国家（地区）代码        736
e.4  货币代码   ...     741