JavaServerFaces核心编程(第2版)

JavaServerFaces核心编程(第2版)"

作者:王岩
ISBN:9787302185499
定价:¥79.80
字数:千字
页数:
出版时间:2008.10.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书由著名畅销书作家、JSF 1.0专家组成员David Geary主笔,是JSF编程图书中的绝对“头号指南”,自第一版出版以来,一直是广大JSF学习者的首选教程。

  本书全面深入地讲解了JSF 1.2编程的各个方面,包括JSF的各种增强特性、强大的Ajax开发技术,以及使JSF更具价值的开源创新内容,为创建高性能的应用程序提供系统级的最佳实用方案。两位传奇作者利用自身对Java平台的透彻理解,为读者提供了大量解决方案、技巧、提示和编写优秀JSF 1.2产品代码的方法,无论读者是JSF或者servlet方面的新手还是老手,都将大受裨益。

前言

前    言

  

  

  

  

  

  2002年在JavaOne大会上第一次发布JavaServer Faces (JSF)的时候,这消息令我们非常兴奋。我们在客户端Java开发方面都具有丰富的经验,并已出版了David编写的Graphic JavaTM和Cay编写的Core JavaTM,由Sun Microsystems出版社出版。第一次使用servlet和JavaServer Pages (JSP)编写Web程序的时候,我们发现它不是很直观并且很乏味。现在JavaServer Faces在Web应用程序前端提供了友好的外观,使程序员只需考虑文本字段和菜单而不用为页面跳转和请求参数烦恼。当我们提出写一本JSF书的想法时,出版商迅速作出回应,建议我们一起就这一技术为Sun Microsystems出版社写本书。

  直到2004年JSF专家组(David是成员之一)才发布JSF 1.0规范和参考实现。之后在很短时间内,又发布了漏洞修补版本1.1。在2006年,增量1.2版发布,添加了许多清理和方便的特性。

  现在,JSF是服务器端最杰出的Java Web框架,它兑现了自己的大部分承诺。开发人员确实可以通过在表单上放置组件,将它们链接到Java对象来设计Web用户界面,而不必混合代码和标签。JSF的一个强大之处在于它是可拓展的组件模型,并且有大量的第三方组件可用。灵活的框架设计使它能够更好地扩展,并能容纳新技术,例如Ajax。框架的设计用于支持工具,最终产生了支持拖放的GUI构建器。最后,对于其他竞争技术,一旦深入表面,就立刻会跌下深崖;与这些竞争技术不同,JSF支持最困难的部分——表示和业务逻辑的分离、导航、连接外部服务和配置管理。

  我们现在仍然因JSF而兴奋不已,而且也希望读者通过学习这个技术成为更加高效的Web应用程序开发人员,也能同我们一起分享这种快乐。

关于本书

  本书面向Web开发人员(主要关注用户界面设计)和程序员(实现Web应用程序可重用的组件)。这与官方JSF规范形成了鲜明的对比,官方规范是一本厚重、庞大的文本文档,它的主要读者是框架实现人员和撰写书籍的作者。

  本书的前半部分,直到第6章,着重讲解JSF标签。这些标签类似于HTML表单标签。它们是JSF用户界面的基本构建块。不是所有的程序都需要使用这些标签。我们假设网页仅需要基本的HTML技术,而业务逻辑需要标准的Java编程。

  本书第一部分涵盖下面的主题:

● 设置编程环境(第1章)

● 将JSF标签连接到应用程序逻辑(第2章)

● 页面间导航(第3章)

● 使用标准JSF标签(第4和第5章)

● 转换和验证输入(第6章)

  从第7章起,我们开始详细讨论JSF编程,包括如何完成高级任务和扩展JSF框架。下面是第二部分的主题:

● 事件处理(第7章)

● 在多个页面中包含公共内容(第8章)

● 实现自定义组件、转换器和验证器(第9章)

● 连接到数据库和其他外部服务(第10章)

● Ajax(第11章)

● 开源技术,重点放在Facelets、Seam和Shale(第12章)

  本书最后一章回答各种“如何实现……”的常见问题(第13章)。我们建议读者在熟悉了JSF的基础之后,就快速地浏览这一章。其中包含关于调试和日志的有用说明,也提供了JSF缺少功能的实现细节和工作代码,例如文件上传、弹出菜单和长表的分页组件。

  JSF是在servlet和JSP基础上建立的,但是从JSF开发者的角度看,这些技术仅组成了低层系统。虽然熟悉其他网络技术例如servlet、JSP或Struts没有坏处,但我们会假设读者不熟悉这些知识。

所需软件

  本书需要的所有软件都可以免费获得。包括Sun Microsystems的Java软件开发工具包和支持JSF的应用程序服务器,例如优秀的开源项目GlassFish。该软件可以运行在Linux、Mac OS X、Solaris和Windows上。我们在Linux和Mac OS X上使用Java 5来开发本书中的示例代码。

  如果读者正在寻找支持JSF的开发环境,我们可以真诚地向您推荐免费软件NetBeans IDE。较好支持JSF的Eclipse可以从销售Eclipse增强版的几个供应商那里得到。

网络支持

  本书的支持网站是http://www.horstman.com/corejsf/,其中包含:

● 本书中所有例子的源代码(从www.tupwk.com.cn中也可下载源代码)

● 我们认为浏览形式比打印形式更有效的参考资料

● 本书和代码中已知的错误列表

● 用于提交更正和建议的表单

另外,大家可以通过wkservice@vip.163.com向我们反馈建议和堪误信息。

??

  

  

  ??

  

  ??

  

  ??

  

IV

       JavaServer Faces核心编程(第2版) 

  

  

III

前    言       

  

  

  

  

  

  

  

  

  

  

  

目录

目    录

  

  

第1章  入门 1

1.1  为什么要选择

JavaServer Faces 1

1.2  软件安装 2

1.3  一个简单的例子 4

1.3.1  组成部分 6

1.3.2  结构 7

1.3.3  构建说明 8

1.4  示例应用程序分析 9

1.4.1  Beans 9

1.4.2  JSF页面 10

1.4.3  导航 13

1.4.4  Servlet配置 15

1.4.5  欢迎文件 17

1.5  JSF开发环境 17

1.5.1  集成开发环境 17

1.5.2  可视构建器工具 18

1.5.3  使用Ant构建自动化 20

1.6  JSF框架服务 23

1.7  内幕 25

1.7.1  呈现页面 26

1.7.2  解码请求 27

1.7.3  生命周期 28

第2章  受管理Bean 31

2.1  Bean的定义 31

2.1.1  Bean属性 33

2.1.2  值表达式 34

2.2  消息包 35

2.2.1  具有可变部分的消息 37

2.2.2  设置应用程序的本地化 37

2.3  示例应用程序 39

2.4  支撑Bean 45

2.5  Bean作用域 46

2.5.1  会话作用域 46

2.5.2  应用程序作用域 47

2.5.3  请求作用域 47

2.5.4  生命周期说明 48

2.6  配置Bean 48

2.6.1  设置属性值 49

2.6.2  初始化列表和映射 49

2.6.3  链接Bean定义 51

2.6.4  字符串转换 53

2.7  值表达式的语法 54

2.7.1  使用方括号 55

2.7.2  映射和列表表达式 55

2.7.3  解析初始术语 56

2.7.4  复合表达式 57

2.7.5  方法表达式 58

第3章  导航 61

3.1  静态导航 61

3.2  动态导航 63

3.3  高级导航问题 73

3.3.1  重定向 74

3.3.2  通配符 75

3.3.3  使用from-action 75

3.3.4  导航算法 76

第4章  标准JSP标签 79

4.1  JSF核心标签概述 80

4.2  JSF HTML标签概述 82

4.3  表单 89

4.4  文本字段和文本区域 94

4.4.1  隐藏字段 97

4.4.2  使用文本字段和文本区域 97

4.4.3  显示文本和图片 101

4.5  按钮和链接 103

4.5.1  使用命令按钮 104

4.5.2  使用命令链接 108

4.6 选择标签 113

4.6.1  复选框和单选按钮 115

4.6.2  菜单和列表框 118

4.6.3  项目 120

4.7  消息 137

4.8  面板 142

第5章  数据表 147

5.1  数据表标签——h:dataTable 148

5.2  一个简单的表 148

5.2.1  h:dataTable属性 151

5.2.2  h:column属性 153

5.3  表头、表尾和标题 153

5.4  JSF组件 156

5.5  编辑表元 160

5.6  样式 163

5.6.1  列样式 163

5.6.2  行样式 164

5.7  数据库表 165

5.8  表模型 170

5.8.1  编辑表模型 171

5.8.2  排序和过滤 176

5.9  滚动技术 186

5.9.1  使用滚动条滚动表 186

5.9.2  使用分页组件滚动 187

第6章  转换和验证 189

6.1  转换和验证过程概述 189

6.2  使用标准转换器 190

6.2.1  数字和日期的转换 190

6.2.2  转换错误 194

6.2.3  一个完整的转换器

的例子 199

6.3  使用标准验证器 202

6.3.1  验证字符串长度和数值

范围 202

6.3.2  必需值的检查 203

6.3.3  显示验证错误 204

6.3.4  跳过验证 205

6.3.5  一个完整的验证例子 205

6.4  使用自定义转换器和

验证器编程 207

6.4.1  实现自定义转换器类 207

6.4.2  实现自定义验证器类 220

6.4.3  注册自定义验证器 223

6.4.4  使用Bean方法验证 225

6.4.5  为转换器提供属性 226

6.4.6  在多个组件间验证关系 226

第7章  事件处理 231

7.1  生命周期事件 232

7.2  值变化事件 233

7.3  动作事件 238

7.4  事件监听器标签 247

7.5  直接组件 249

7.5.1  使用直接输入组件 250

7.5.2  使用直接命令组件 251

7.6  从UI到服务器传递数据 252

7.6.1  f:param标签 253

7.6.2  f:attribute标签 254

7.6.3  f:setPropertyActionListener

标签 255

7.7  阶段事件 256

7.8  把所有组件放在一起 265

第8章  子视图和Tiles 275

8.1  常见布局 275

8.2  书籍阅读器和图书馆 276

8.3  书籍阅读器 278

8.3.1  单一JSF页面 279

8.3.2  公共内容包含 285

8.3.3  基于JSP程序的

包含内容 285

8.3.4  JSF特定的考虑 286

8.4  书籍阅读器中的内容包含 287

8.4.1  了解Tiles 290

8.4.2  安装Tiles 290

8.4.3  为书籍阅读器使用Tiles 291

8.4.4  参数化Tiles 292

8.4.5  扩展Tiles 293

8.5  图书馆 297

8.5.1  嵌入Tiles 298

8.5.2  Tiles控制器 298

第9章  自定义组件、转换器

和验证器 311

9.1  用于实现自定义组件的类 312

9.1.1  标签和组件 314

9.1.2  自定义组件开发者的

工具箱 316

9.2  编码:产生标记 317

9.3  解码:处理请求值 320

9.4  实现自定义组件标签 325

9.4.1  TLD文件 326

9.4.2  标签处理程序类 329

9.4.3  微调控制器程序 333

9.4.4  在JSF 1.1中定义标签

处理程序 336

9.5  深入理解微调控制器 341

9.5.1  使用外部呈现器 341

9.5.2  从外部呈现器中调用

转换器 346

9.5.3  支持值变化监听器 347

9.5.4  支持方法表达式 348

9.5.5  示例程序 350

9.6  编码JavaScript以避免到

服务器往返 356

9.7  使用子组件和facets 359

9.7.1  处理SelectItem子组件 363

9.7.2  处理facets 363

9.7.3  编码CSS样式 364

9.7.4  使用隐藏字段 366

9.7.5  保存和重建状态 367

9.7.6  触发动作事件 369

9.7.7  使用多页选项卡 376

9.8  实现自定义转换器和

验证器 382

9.8.1  自定义转换器标签 382

9.8.2  自定义验证器标签 391

第10章  外部服务 401

10.1  使用JDBC访问数据库 401

10.1.1  发送SQL语句 401

10.1.2  连接管理 403

10.1.3  填补连接泄漏 403

10.1.4  使用预编译语句 405

10.2  配置数据源 406

10.2.1  在GlassFish中配置数据库

资源 406

10.2.2  在Tomcat中配置数

据库资源 408

10.2.3  访问容器管理的资源 410

10.2.4  一个完整的数据库

例子 412

10.3  LDAP介绍 421

10.3.1  LDAP 421

10.3.2  配置LDAP服务器 423

10.3.3  访问LDAP信息 426

10.4  管理配置信息 431

10.4.1  配置Bean 431

10.4.2  配置外部上下文 433

10.4.3  配置容器管理资源 434

10.4.4  创建LDAP应用程序 438

10.5  容器管理的验证和授权 450

10.6  使用Web服务 461

第11章  Ajax 471

11.1  Ajax基础 472

11.2  JavaScript库 474

11.2.1  Prototype库 475

11.2.2  褪色技术库 475

11.3  表单自动完成 475

11.4  实时验证 478

11.5  传送客户端视图状态 483

11.6  直接Web远程调用 484

11.7  Ajax组件 486

11.7.1  混合组件 487

11.7.2  将JavaScript放在呈现器

外面 490

11.7.3  传输JSP标签属性到

JavaScript代码 492

11.8  Ajax4jsf 493

11.8.1  使用Ajax4jsf实现表单

自动完成 494

11.8.2  使用Ajax4jsf实现实时

验证 498

第12章  开源 509

12.1  Web流——Shale 510

12.1.1  对话框配置 513

12.1.2  进入对话框 513

12.1.3  对话框导航 514

12.1.4  对话框作用域 515

12.1.5  对话框上下文敏感 517

12.1.6  子对话框 519

12.2  另一种视图技术——

Facelets 521

12.2.1  XHTML视图 522

12.2.2  标记通过使用JSF组件

替换:jsfc属性 523

12.2.3  使用JSF标签 526

12.2.4  使用模板的页面合成 528

12.2.5  Facelets自定义标签 530

12.3  EJB 集成——Seam 531

12.3.1  地址簿 532

12.3.2  配置 535

12.3.3  实体Bean 536

12.3.4  有状态会话Bean 538

12.3.5  JSF DataModel集成 540

12.3.6  对话作用域 542

第13章  如何实现…… 545

13.1  Web用户界面设计 545

13.1.1  如何找到更多的组件? 545

13.1.2  如何支持文件上传? 548

13.1.3  如何显示图像映射? 556

13.1.4  如何在MyPage中包含

一个applet? 557

13.1.5  在JSF页面中如何产生

二进制数据? 559

13.1.6  如何一次在一个页面中

显示大型数据集? 569

13.1.7  如何产生一个弹出

窗口? 575

13.1.8  如何有选择地显示和

隐藏组件? 583

13.1.9  如何自定义错误

页面? 584

13.2  验证 588

13.2.1  如何编写自己的客户端

验证标签? 588

13.2.2  如何为客户端验证使用

Shale验证器? 595

13.2.3  如何验证组件间的

关系? 596

13.3  编程 597

13.3.1  在Eclipse中如何

使用JSF? 597

13.3.2  如何查找配置文件? 600

13.3.3  JSF组件如何访问JAR 

文件中的资源? 600

13.3.4  如何将一系列标签打

包到JAR文件中? 604

13.3.5  在JavaScript中,如何为

产生document.forms[id]

取得表单ID? 605

13.3.6  如何使JavaScript函数

每页只出现一次? 605

13.3.7  如何执行初始化或清理

工作? 606

13.3.8  如何存储一个受管理

Bean,使它的生命周期比

请求作用域长但比会话

作用域短? 606

13.3.9  如何扩展JSF表达式

语言? 607

13.4  调试和日志 610

13.4.1  如何解释栈跟踪? 611

13.4.2  如何避免“复杂的堆栈

跟踪”? 614

13.4.3  如何“热部署”

应用程序? 614

13.4.4  如何注释掉JSF页面的

一部分? 615

13.4.5  如何找到日志? 616

13.4.6  如何查看页面接收了什么

参数? 618

13.4.7  如何开启JSF容器的日志

功能? 619

13.4.8  如何调试问题页? 622

13.4.9  如何找到库源代码? 623

??

  

  

  ??

  

  ??

  

  ??

  

VIII

       JavaServer Faces核心编程(第2版) 

  

  

IX

目    录       

  

  

  

  

  

  

  

  

  

  

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个