具体描述
《JavaServer Faces核心编程(第3版)》全面透彻地讲解JSF 2.0,指导您驾轻就熟地掌握JSF 2.0的卓越功能,旨在帮助您迅速吸收宝贵的JSF 2.0知识精髓,并得心应手地运用所有JSF 2.0新功能。本书全面介绍基本构件,呈现权威解决方案、提示、技巧和解答,助您在开发项目时高效使用JSF。无论您在GlassFish(或其他符合Java EE 6标准的应用服务器)上开发Java EE 6 Web应用程序,还在诸如Tomcat 6的Servlet运行器上开发程序,本书都堪称您的良师益友。
作者简介
David Geary担任Clarity Training咨询和培训公司总裁,迄今已撰写了8本Java技术书籍,其中包括Prentice Hall出版的畅销书籍Graphic JavaTM 2系列(1999)、Advanced JavaServer Pages(2001)和GoogleTM Web Toolkit Solutions(2008)等。David是JSF专家组和Java Champion的成员,他经常在多个软件会议上发表重要演讲,已三次荣膺JavaOne Rock Star称号。
Cay Horstmann是Core Java, Volume I&II, Eight Edition(Prentice Hall,2008)的主要作者,是圣何塞州立大学计算机科学系教授,也是Java Champion成员,经常在多个计算机行业会议上发表重要演讲。
目录信息
1.1 选用JSF的原因 1
1.2 一个简单例子 2
1.2.1 组成部分 4
1.2.2 目录结构 5
1.2.3 构建JSF应用程序 6
1.2.4 部署JSF应用程序 7
1.3 JSF开发环境 9
1.4 分析示例应用程序 11
1.4.1 bean 12
1.4.2 JSF页面 13
1.4.3 servlet配置 14
1.5 简单了解Ajax JSF 2.0 17
1.6 JSF框架服务 19
1.7 技术内幕 21
1.7.1 呈现页面 21
1.7.2 请求解码 22
1.7.3 生命周期 23
1.8 小结 25
第2章 受管bean 27
2.1 bean的定义 27
2.1.1 bean属性 29
2.1.2 值表达式 31
2.1.3 backing bean 31
2.2 CDI bean CDI 32
2.3 消息包 33
2.3.1 具有可变部分的消息 35
2.3.2 应用程序的区域设置 36
2.4 示例应用程序 37
2.5 bean作用域 42
2.5.1 会话作用域 43
2.5.2 请求作用域 44
2.5.3 应用程序作用域 45
2.5.4 对话作用域 CDI 45
2.5.5 视图作用域 JSF 2.0 46
2.5.6 自定义作用域 JSF 2.0 46
2.6 配置bean 46
2.6.1 注入CDI bean CDI 46
2.6.2 注入受管bean JSF 2.0 47
2.6.3 bean生命周期批注 48
2.6.4 使用XML配置受管bean 48
2.7 表达式语言语法 52
2.7.1 左值和右值模式 53
2.7.2 使用方括号 53
2.7.3 映射和列表表达式 54
2.7.4 调用方法和函数 JSF 2.0 55
2.7.5 解析初项 55
2.7.6 复合表达式 57
2.7.7 方法表达式 57
2.7.8 方法表达式参数 JSF 2.0 58
2.8 小结 59
第3章 导航 61
3.1 静态导航 61
3.2 动态导航 62
3.2.1 将结果映射到视图ID 63
3.2.2 JavaQuiz应用程序 64
3.3 重定向 73
3.4 REST式导航和书签
URL JSF 2.0 75
3.4.1 视图参数 75
3.4.2 获取请求链接 76
3.4.3 指定请求参数 76
3.4.4 将书签链接添加到Quiz
应用程序中 78
3.5 高级导航规则 81
3.5.1 通配符 82
3.5.2 使用from-action 83
3.5.3 条件导航情形 JSF 2.0 84
3.5.4 动态目标视图ID JSF 2.0 84
3.6 小结 84
第4章 标准JSF标签 85
4.1 JSF核心标签概述 86
4.2 JSF HTML标签概述 88
4.3 面板 96
4.4 标题、正文和表单标签 98
4.5 文本字段和文本区域 103
4.5.1 隐藏字段 106
4.5.2 使用文本字段和文本
区域 106
4.5.3 显示文本和图像 108
4.6 按钮和链接 111
4.6.1 使用按钮 113
4.6.2 使用命令链接 117
4.7 选择标签 120
4.7.1 复选框和单选按钮 123
4.7.2 菜单和列表框 125
4.7.3 项目 127
4.8 消息 143
4.9 小结 148
第5章 Facelets JSF 2.0 149
5.1 Facelets标签 149
5.2 Facelets模板 150
5.2.1 使用公共模板生成页面 152
5.2.2 组织视图 155
5.2.3 装饰器 160
5.2.4 参数 162
5.3 自定义标签 162
5.4 其他标签 165
5.4.1 <ui:debug> 165
5.4.2 <ui:remove> 167
5.4.3 处理空白 168
5.5 小结 168
第6章 数据表 169
6.1 数据表标签——h:dataTable 169
6.2 一个简单的表 170
6.2.1 h:dataTable特性 173
6.2.2 h:column特性 174
6.3 列头、列尾和标题 174
6.4 样式 177
6.4.1 列样式 178
6.4.2 行样式 179
6.5 表中的JSF组件 181
6.6 编辑表格 183
6.6.1 编辑表格单元格 184
6.6.2 删除行 JSF 2.0 186
6.7 数据库表 189
6.8 表模型 193
6.8.1 呈现行号 193
6.8.2 查找所选行 194
6.8.3 排序和过滤 195
6.9 滚动技术 202
6.9.1 用滚动条滚动 202
6.9.2 用分页器小组件滚动 203
6.10 小结 203
第7章 转换和验证 205
7.1 转换和验证过程概述 205
7.2 使用标准转换器 206
7.2.1 数字和日期的转换 206
7.2.2 转换错误 210
7.2.3 一个完整的转换器例子 215
7.3 使用标准验证器 218
7.3.1 验证字符串长度和值
范围 218
7.3.2 检查必需值 219
7.3.3 显示验证错误 220
7.3.4 跳过验证 222
7.3.5 一个完整的验证例子 222
7.4 bean验证 JSF 2.0 225
7.5 使用自定义转换器和验证器
编程 230
7.5.1 实现自定义转换器类 230
7.5.2 指定转换器 JSF 2.0 233
7.5.3 报告转换错误 234
7.5.4 从资源包中获取
错误消息 235
7.5.5 自定义转换器示例程序 239
7.5.6 为转换器提供特性 242
7.5.7 实现自定义验证器类 243
7.5.8 注册自定义验证器 243
7.5.9 使用bean方法验证 247
7.5.10 验证多个组件之间的
关系 247
7.6 实现自定义转换器和验证器
标签 249
7.7 小结 255
第8章 事件处理 257
8.1 事件和JSF生命周期 258
8.2 值更改事件 259
8.3 动作事件 263
8.4 事件监听器标签 269
8.5 直接组件 270
8.5.1 使用直接输入组件 271
8.5.2 使用直接命令组件 272
8.6 从UI向服务器传递数据 273
8.6.1 方法表达式参数 JSF 2.0 274
8.6.2 f:param标签 275
8.6.3 f:attribute标签 275
8.6.4 f:setPropertyActionListener
标签 276
8.7 阶段事件 277
8.8 系统事件 JSF 2.0 278
8.8.1 多组件验证 280
8.8.2 在呈现视图之前做出
决定 281
8.9 合为一体 285
8.10 小结 291
第9章 复合组件 293
9.1 复合标签库 294
9.2 使用复合组件 295
9.3 实现复合组件 297
9.4 配置复合组件 298
9.5 特性类型 299
9.6 必需的特性和默认特性值 299
9.7 处理服务器端数据 301
9.8 复合组件的本地化 303
9.9 公开复合组件 304
9.10 facet 308
9.11 子组件 309
9.12 JavaScript 310
9.13 支持组件 315
9.14 在JAR中打包复合组件 323
9.15 小结 323
第10章 Ajax JSF 2.0 325
10.1 Ajax和JSF 326
10.2 JSF生命周期和Ajax 327
10.3 JSF Ajax方法 328
10.4 f:ajax标签 329
10.5 Ajax组 331
10.6 Ajax字段验证 333
10.7 Ajax请求监视 334
10.8 JavaScript名称空间 336
10.9 处理Ajax错误 338
10.10 Ajax响应 338
10.11 JSF 2.0 JavaScript库 341
10.12 传递额外的Ajax请求
参数 342
10.13 事件队列 344
10.14 合并事件 344
10.15 截获jsf.ajax.request() 345
10.16 在复合组件中使用Ajax 346
10.17 小结 351
第11章 自定义组件 353
11.1 实现组件类 354
11.2 编码:生成标记 357
11.3 解码:处理请求值 359
11.4 标签库描述符 JSF 2.0 365
11.5 使用外部呈现器 368
11.6 处理标签特性 JSF 2.0 371
11.6.1 支持值更改监听器 372
11.6.2 支持方法表达式 373
11.6.3 事件队列 374
11.6.4 示例应用程序 375
11.7 JavaScript编码 382
11.8 使用子组件和facet 385
11.8.1 处理SelectItem子组件 388
11.8.2 处理facet 389
11.8.3 使用隐藏字段 390
11.9 保存和还原状态 396
11.10 构建Ajax组件 JSF 2.0 400
11.11 在自定义组件中实现独立的
Ajax 401
11.12 小结 410
第12章 外部服务 411
12.1 使用JDBC访问数据库 411
12.1.1 发出SQL语句 411
12.1.2 连接管理 413
12.1.3 消除连接泄漏问题 413
12.1.4 使用预定义语句 415
12.1.5 事务 416
12.1.6 使用Derby数据库 417
12.2 配置数据源 418
12.2.1 访问容器管理的资源 418
12.2.2 在GlassFish中配置
数据库资源 419
12.2.3 在Tomcat中配置数据库
资源 421
12.2.4 一个完整的数据库
例子 422
12.3 使用Java持久性架构 429
12.3.1 JPA简介 429
12.3.2 在Web应用程序中使用
JPA 430
12.3.3 使用受管bean和无状态
会话bean 434
12.3.4 有状态会话bean CDI 437
12.4 容器管理的身份验证和
授权 440
12.5 发送邮件 450
12.6 使用Web服务 456
12.7 小结 462
第13章 问答 463
13.1 如何找到更多组件 463
13.2 如何支持文件上传 464
13.3 如何显示图像映射 471
13.4 如何在JSF页面中生成
二进制数据 473
13.5 如何以一次一个页面的方式
显示大型数据集 482
13.6 如何生成一个弹出窗口 487
13.7 如何酌情显示和隐藏页面
部分 494
13.8 如何自定义错误页面 495
13.9 如何编写自己的客户端验证
标签 500
13.10 如何配置应用程序 506
13.11 如何扩展JSF表达式
语言 507
13.12 如何在JSF表达式语言中
添加函数 JSF 2.0 510
13.13 如何监视浏览器和服务器
之间的流量 511
13.14 如何调试问题页面 513
13.15 当开发JSF应用程序时
如何使用测试工具 514
13.16 如何结合使用JSF和
Scala 515
13.17 如何结合使用JSF和
Groovy 516
13.18 小结 517
· · · · · · (收起)
读后感
用户评价
**融会贯通:JSF生态的探索与最佳实践的提炼** 《JavaServer Faces核心编程》的最后一章,将我的视野从JSF框架本身扩展到了更广阔的JSF生态系统。作者不仅介绍了JSF与Spring、CDI等流行Java EE框架的集成方法,还探讨了如何利用第三方JSF组件库,如PrimeFaces、RichFaces等,来快速构建功能丰富的用户界面。书中对这些组件库的特性和使用场景进行了详细的对比分析,让我能够根据项目需求选择最合适的工具。我尝试着将PrimeFaces集成到我的一个项目中,书中提供的详细示例和配置指导,让我顺利地实现了复杂UI组件的快速开发,如数据表格、对话框、日历选择器等,极大地提高了开发效率。此外,本书还深入探讨了JSF应用程序的测试策略,包括单元测试、集成测试和端到端测试,以及如何利用JUnit、Mockito等工具来辅助JSF应用的测试。这让我对如何保证JSF应用程序的质量有了更系统的认识。最后的几页,作者总结了JSF开发中的一些最佳实践,包括如何组织项目结构、如何进行代码重构、以及如何处理国际化和本地化等问题。这些宝贵的经验,无疑将帮助我成为一名更优秀的JSF开发者。这本书的结束,并非学习的终点,而是我踏上JSF实践新征程的起点。
**拨云见日:JSF的高级特性与设计模式的巧妙融合** 继续深入《JavaServer Faces核心编程》,我发现这本书的魅力远不止于基础。当进入到数据绑定、验证和导航等高级主题时,JSF框架的强大功能和设计哲学才真正展现在我眼前。作者对`f:validator`和`f:converter`的讲解,让我对如何进行客户端和服务器端数据校验有了全面的认识,各种常见的校验场景,例如邮箱格式、密码强度、数字范围等,书中都提供了行之有效的解决方案,而且代码示例简洁明了,极具参考价值。最让我兴奋的是,在讲解页面导航时,作者不仅介绍了传统的`navigation-rules`配置方式,还深入探讨了如何利用EL表达式和JSF导航管理器实现更加灵活和动态的页面跳转,这对于构建大型、复杂的Web应用程序来说至关重要。我尝试着将书中的知识应用到我正在开发的一个项目中,通过自定义导航规则,成功实现了用户在完成一系列操作后,能够根据不同的业务逻辑跳转到不同的页面,极大地提升了用户体验。此外,本书对JSF的Facelets模板技术也有深入的介绍,这使得代码复用和页面布局管理变得异常便捷。作者通过对比不同情况下的实现方式,让我充分理解了Facelets的优势,也为我编写更具维护性和可扩展性的JSF应用程序打下了坚实的基础。
**深入骨髓:JSF的底层机制与性能优化之道** 阅读《JavaServer Faces核心编程》的后续章节,我逐渐意识到这本书的深度远超我的预期。作者开始深入探讨JSF的底层实现机制,包括其组件树的构建、状态管理、生命周期各个阶段的详细解析,以及JSF如何与Servlet容器、JSF实现(如Mojarra)进行交互。理解这些底层原理,让我对JSF的性能优化有了全新的认识。书中提供了关于如何减少组件树复杂度、优化事件处理、以及有效利用JSF的缓存机制等一系列实用的技巧。我根据书中的建议,对我的一个老旧JSF应用进行了性能分析和调优,成功地将页面加载时间和响应时间缩短了近30%,用户反馈也明显提升。作者还详细介绍了JSF的配置选项,包括如何通过`faces-config.xml`和`web.xml`进行精细化控制,以及如何利用JSF的注解来简化配置。这对于理解JSF的整体架构和灵活配置提供了重要的指导。更重要的是,作者在分析JSF的内存管理和线程安全问题时,给出了非常中肯的建议,这对于在生产环境中部署和维护JSF应用至关重要。这本书就像一位经验丰富的导师,不仅教我如何使用JSF,更让我理解了“为什么”要这样做,从而能够写出更高效、更健壮的代码。
**精益求精:JSF与AJAX的无缝集成,构建响应式Web应用** 《JavaServer Faces核心编程》在AJAX集成方面的论述,绝对是这本书的一大亮点。在如今追求极致用户体验的时代,动态、响应式的Web界面已经成为标配,而JSF通过其内置的AJAX支持,完美地解决了这一难题。作者并没有简单地介绍`f:ajax`标签的使用,而是详细解释了AJAX请求在JSF生命周期中的具体流程,以及如何通过`render`和`execute`属性精确控制局部组件的更新。我尝试着将书中的AJAX示例应用到我的一个实时数据展示模块,当我修改某个输入框的值时,相关的图表数据能够无需刷新整个页面就实时更新,这种流畅的用户体验让我感到非常满意。书中还特别提到了处理AJAX错误和异常的策略,这对于确保应用程序的稳定性和健壮性至关重要,避免了因为AJAX调用失败而导致整个应用崩溃的尴尬局面。我尤其欣赏作者在讲解JSF的JS API时,展示了如何通过JavaScript与JSF组件进行交互,这为实现更加复杂的客户端行为提供了无限可能。这本书让我深刻体会到,JSF不仅仅是一个服务器端组件框架,它更是一个能够轻松构建现代化、高性能Web应用程序的强大工具。
**初窥门径:JavaServer Faces,一段充满探索的旅程** 拿到《JavaServer Faces核心编程》这本书,我的心头涌起一股久违的学习热情,仿佛又回到了当年那个孜孜不倦钻研新技术的少年。翻开第一页,扑面而来的是一种严谨又不失亲切的语言风格,作者并没有一开始就抛出枯燥的API和晦涩的概念,而是循序渐进地引导读者进入JSF的世界。从JSF的诞生背景、核心理念,到其在Java EE生态中的地位,都进行了清晰的阐述。我特别喜欢作者在讲解组件模型时使用的比喻,让那些抽象的“视图”、“控制器”、“模型”变得生动形象,不再是冰冷的术语。接下来的章节,作者详细介绍了JSF的基本组件,如`h:outputText`、`h:inputText`等,并且通过大量的代码示例,展示了如何将这些组件运用到实际的Web页面中。我跟着作者的步骤,一步步搭建了一个简单的用户登录界面,每一步都踩得很扎实。最让我印象深刻的是,作者在讲解事件处理机制时,并没有仅仅停留在表面的事件绑定,而是深入剖析了JSF的事件生命周期,解释了事件是如何被捕获、处理,并最终影响到UI状态的。这对于我这样希望深入理解JSF工作原理的读者来说,无疑是醍醐灌顶。当然,这本书的篇幅颇大,内容详实,相信在接下来的阅读过程中,还会遇到更多精彩的内容,我也期待着能从中获得更深层次的理解和实践经验。
JSF的书不是很多,正在看开头几张,不错
本书英文版是本领域最权威的2本作品之一
本书英文版是本领域最权威的2本作品之一
JSF的书不是很多,正在看开头几张,不错
本书英文版是本领域最权威的2本作品之一