《JavaServer Faces 2.0完全参考手册》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)伯恩斯,(美)沙尔克,(美)格里芬著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302274469
  • 页数:646 页
图书介绍:本书针对JSF 2.0中的变化进行了全面的修订与更新,涵盖了JavaEE的官方标准Web开发架构的每个方面。此外,本书提供了一个综合的示例应用程序,可以将其用作您自己的JSF应用程序的模型。

第Ⅰ部分JavaServer Faces框架 3

第1章 JavaServer Faces简介 3

1.1 什么是JavaServer Faces 3

1.2 JavaServer Faces的历史 4

1.2.1 公共网关接口 4

1.2.2 Servlet API 4

1.2.3 Java服务器页面 5

1.2.4 Apache Struts 5

1.2.5 Spring框架和Spring MVC 6

1.2.6 JavaServer Faces的诞生 6

1.3 JavaServer Faces设计目标 7

1.4 JSF应用程序架构 8

1.4.1 JSF请求处理生命周期 10

1.4.2 JSF导航模型 11

第2章 构建一个简单的JavaServer Faces应用程序 15

2.1 应用程序概述 15

2.1.1 JSFReg应用程序文件 16

2.1.2 JSF软件栈 17

2.1.3 装配JSFReg应用程序 17

2.1.4 配置文件 18

2.1.5 Facelets页面 19

2.2 构建和运行应用程序 28

2.3 应用程序关键部分回顾 30

第3章 JavaServer Faces请求处理生命周期 31

3.1 JSF请求处理生命周期概述 31

3.1.1 请求处理生命周期的功能 32

3.1.2 与基他Wob技术的区别 32

3.1.3 服务吕端视图的自动管理与同步 33

3.1.4 请求处理生命周期的各阶段 34

3.2 通心粉生境垂下生命周期 40

3.3 与请求处理生财戎关的高级主题 43

3.3.1 使用immediate属性 43

3.3.2 阶段侦听器 45

3.3.3 异常处理程序 45

3.4 关键的重创周期概念 46

第4章 Facelets 视图声明语言 47

4.1 JSF中使用模板化的威力 47

4.2 JSP与Facelets 的异同 48

4.3 使用Facelets 执行模板化 50

4.4 Facelets 模板化标签使用指南 53

4.4.1 ui:composition 53

4.4.2 ui:dexorate 54

4.4.3 ui:derinc 55

4.4.4 ui:insen 55

4.4.5 ui:include 55

4.4.6 ui:param 56

4.5 Facelets 非模板化标签使用批南 56

4.5.1 ui:component 56

4.5.2 ui:fragment 57

4.5.3 ui:remove 57

4.5.4 ui:debug 57

第5章 托管bean与JSF表达式语言 59

5.1托管bean概念 60

5.1.1简单托管bean示例 60

5.1.2初始化托管bean属性 62

5.1.3把List和Map声明为托管bean 68

5.1.4托管bean的相互依赖 69

5.1.5使用EL设置托管属性 71

5.2控制托管bean生命周期 71

5.3 JSF表达式语言 74

5.3.1 JSF 1.1与JSF 1.2之间表达式语言的关键区别 74

5.3.2统一EL概念 76

5.3.3值表达式 76

5.3.4表达式操作符 82

5.3.5方法表达式 83

5.4托管 bean的Web应用程序开发细节 86

5.4.1采用编程方式访问托管bean 86

5.4.2使用托管bean作为JSF页面的支撑bean 88

第6章 导航模型 93

6.1使用隐式导航 94

6.2 JSF导航系统概述 96

6.2.1回顾MvC——控制器 96

6.2.2 NavigationHandle——幕后主管 97

6.2.3 Faces动作方法说明 98

6.3构建导航规则 99

6.3.1静态导航示例 100

6.3.2动态导航示例 101

6.4更复杂的导航示例 105

6.4.1使用通配符 105

6.4.2使用条件导航 106

6.4.3使用重定向 108

6.4.4视图参数的XML配置 121

6.4.5在Servlet错误页上使用JSF 组件 122

第7章 用户界面组件模型 123

7.1什么是用户界面组件 123

7.1.1基于组件的Web开发的兴起 124

7.1.2 JavaServer Faces用户界面组件的目标 125

7.2 JSF用户界面组件架构介绍 126

7.2.1用户界面组件树(视图) 129

7.2.2用户界面组件和相关的“活动部分” 131

7.3组件资源 133

7.4用户界面组件和Facelets 133

7.4.1用编程方式访问用户界面组件 133

7.4.2在JSF视图中绑定用户界面组件的有用建议 136

第8章 数据转换与数据验证 139

8.1验证和转换的示例 140

8.2转换和验证揭秘 142

8.3 Faces转换器系统 145

8.3.1 DateTimeConverter 146

8.3.2 NumberConverter 147

8.3.3关联转换器与UIComponent实例 147

8.3.4转换器的生命周期 152

8.3.5定制转换器 153

8.4 Faces验证系统 157

8.4.1 LongRangeValidator 158

8.4.2 DoubleRangeValidator 159

8.4.3 LengthValidator 159

8.4.4必需的工具Required-Validator 160

8.4.5 RegExValidator 160

8.4.6 BeanValidator 161

8.5关联验证器与UIComponent实例 161

8.5.1使用标记关联验证器与UIComponent实例 161

8.5.2利用标记和验证器属性关联验证器与UIComponent实例 162

8.5.3采用编程方式关联验证器与UIComponent实例 163

8.5.4验证器的生命周期 164

8.5.5定制验证器 165

8.6使用JSF的bean验证 166

8.6.1什么是bean验证 167

8.6.2 JSF验证和bean验证之间的区别 167

8.6.3使用JSF的bean验证的细节 168

8.6.4使用bean验证方式验证JSF托管bean属性 170

8.7汇总:视图上的消息 171

8.7.1 FacesContext上与FacesMessage相关的方法 171

8.7.2 UIViewRoot及其Locale属性 173

8.7.3何时、如何创建FacesMessage实例并把它添加到FacesContext 173

8.7.4 FacesMessages的渲染 174

8.7.5消息和bean验证 177

第9章 JSF事件模型 179

9.1 JSF事件模型概述 179

9.2 JSF事件的工作方式 183

9.2.1 Faces事件侦听器接口和事件类 184

9.2.2处理Faces事件的时机 185

9.2.3应用程序事件 187

9.2.4剖析值修改事件 189

9.3编写定制动作和值修改侦听器 190

9.4更多的Faces事件示例 192

9.4.1使用值修改事件自动填充字段 193

9.4.2扩展值修改示例 196

9.5使用阶段事件和侦听器 198

9.6使用系统事件和侦听器 201

9.6.1怎样发布系统事件 204

9.6.2怎样订阅系统事件 205

9.7创建定制应用程序事件和侦听器的一般规则 207

第 Ⅱ部分 扩展JavaServer Faces 211

第10章 应用JSF:虚拟教练应用程序简介 211

10.1虚拟教练应用程序概观 212

10.1.1注册和登录到虚拟教练应用程序 212

10.1.2创建新的训练赛事检测计划 213

10.1.3选择教练 214

10.1.4只有教练可以执行的动作 214

10.2虚拟教练应用程序需求 216

10.3虚拟教练应用程序架构 217

10.4 Facelet页面 217

10.4.1 Web应用程序根目录中的页面 217

10.4.2 /user目录中的页面 218

10.4.3 /trainer目录中的页面 218

10.4.4 /resources目录中的页面 218

10.5支撑bean 219

10.6持久性和事务架构 221

10.7与导航相关的问题 225

10.8创建简单的验证系统 228

10.9重温JSFReg:构建注册系统 232

10.10构建虚拟教练应用程序的核心页面 236

10.10.1创建allEvents.xhtml页面 236

10.10.2 editTrainingEvent.xhtml的教练版本 239

10.10.3创建viewTrainees.xhtml和viewTrainingSessions-ForUser.xhtml页面 242

10.11 UserRegist和EventRegist 245

10.11.1访问和初始化UserRegist实例 245

10.11.2读写User实例 246

10.11.3读写TrainingSession实例 248

10.12访问和初始化EventRegist实例 249

10.13读写Event实例 250

10.14虚拟教练应用程序中的JPA和实体类 252

10.14.1 JPA的XML配置文件persistence.xml 254

10.14.2定制ExceptionHandler示例 255

10.15 虚拟教练应用程序的国际化 257

10.16对于虚拟教练应用程序的最后评论 267

第11章 构建定制用户界面组件 269

11.1构建定制用户界面组件的时机 269

11.2用户界面组件定义 270

11.3简单的JSF用户界面组件 271

11.4简单JSF用户界面组件标记背后的代码 273

11.5为用户界面组件添加行为 274

11.5.1复合组件细节初探 276

11.5.2 #{cc}隐式对象 278

11.6用户界面组件的各部分 279

11.7非组合JSF定制用户界面组件 280

11.7.1构建HtmlHelloWorld示例 280

11.7.2接收表单输入的Hello-World用户界面组件 284

11.7.3 JSF股票报价组件 287

11.8定制界面组件的状态管理 289

11.8.1对StateHelper的写操作 289

11.8.2对StateHelper的读操作 290

11.8.3从StateHelper中删除值 290

11.9将渲染代码提取到渲染器中 291

11.9.1创建定制Facelet标签库TagHandler 292

11.9.2使用RenderKit支持多种客户端设备类型 294

11.10高级复合组件的开发 302

11.10.1为〈vt:loginPanel〉创建支撑类 302

11.10.2回顾复合组件特性 307

11.11将JSF组件打包成自包含的Jar文件 307

11.12将复合组件打包成jar文件 307

11.12.1将复合组件Facelet文件打包 307

11.12.2为定制组件库声明定制名称空间URL 307

11.12.3将复合组件的支撑类打包 308

11.13将非复合组件打包成Jar文件 308

11.13.1 JSF运行时如何装载faces-config.xml文件 308

11.13.2 JSP运行时如何加载TLD文件 309

第12章 JSF与Ajax 311

12.1 Ajax概述 311

12.2 JSFReg应用程序中的简单Ajax示例 313

12.3 〈f:ajax〉标签及其特性 320

12.4标准JavaScript资源 326

第13章 构建非用户界面定制组件 329

13.1 JSF中的非用户界面定制组件和装饰 329

13.2非视图定制组件释义 332

13.2.1 PhaseListener 332

13.2.2转换器和验证器 334

13.2.3 ViewHandler 334

13.2.4 VariableResolver和Property-Resolver 335

13.2.5 ELResolver(JSF 1.2) 338

13.2.6 NavigationHandler 347

13.2.7 ActionListener 348

13.2.8 StateManager 349

13.2.9 RenderKit 351

13.2.10 JSF中的工厂模式 352

13.3其他的非用户界面组件主题 364

13.3.1告诉JSF运行时处在软件开发生命周期的哪个阶段:ProjectStage 364

13.3.2 Custom Scopes 365

第14章 保护JavaServer Faces应用程序 367

14.1 Web应用程序安全所涉及的方面和实现过程 367

14.2容器管理的安全 368

14.2.1容器管理的身份验证 368

14.2.2基本身份验证和“领域”的概念 369

14.2.3基于表单的身份验证 370

14.2.4证书身份验证 373

14.2.5容器管理的授权和角色的概念 375

14.2.6容器管理的数据安全 376

14.2.7对“虚拟教练”安全的微小改善 377

14.3用JavaServer Faces实现应用程序管理的安全 378

14.3.1在JSF应用程序中利用JAAS 378

14.3.2在“虚拟教练”中使用JAAS身份验证 379

14.4学习更多关于安全的知识 386

第Ⅲ部分 JavaServer Faces工具与库 389

第15章 配置JavaServer Faces应用程序 389

15.1理解XML方案 390

15.2理解配置文件的处理过程 391

15.3 faces-config.xml文件的顺序 392

15.4 JSF运行时为配置内注扫描类 393

15.5 Faces配置元素 393

15.5.1 absolute-ordering元素 401

15.5.2 action-listener元素 401

15.5.3 after元素 402

15.5.4 application元素 403

15.5.5 application-facto元素 404

15.5.6 attribute元素 404

15.5.7 attribute-class元素 407

15.5.8 attribute-name元素 407

15.5.9 base-name元素 408

15.5.10 before元素 409

15.5.11 behavior元素 410

15.5.12 behavior-class元素 411

15.5.13 behavior-id元素 411

15.5.14 client-behavior-renderer元素 412

15.5.15 client-behavior-renderer-class元素 413

15.5.16 client-behavior-renderer-type元素 414

15.5.17 component元素 414

15.5.18 component-class元素 415

15.5.19 component-family元素 416

15.5.20 component-pe元素 417

15.5.21 converter元素 418

15.5.22 converter-class元素 419

15.5.23 converter-for-class元素 419

15.5.24 converter-id元素 420

15.5.25 default-locale元素 421

15.5.26 default-render-kit-id元素 422

15.5.27 default-validators元素 423

15.5.28 default-value元素 423

15.5.29 el-resolver元素 425

15.5.30 exception-handle-facto元素 425

15.5.31 external-context-facto元素 426

15.5.32 faces-config元素 427

15.5.33 faces-context-facto元素 428

15.5.34 facet元素 428

15.5.35 facet-name元素 430

15.5.36 factory元素 431

15.5.37 from-action元素 431

15.5.38 from-outcome元素 432

15.5.39 from-view-id元素 433

15.5.40 if元素 433

15.5.41 key元素 434

15.5.42 key-class元素 435

15.5.43 lifecycle元素 436

15.5.44 lifecycle-facto元素 437

15.5.45 list-entries元素 437

15.5.46 locale-config元素 439

15.5.47 managed-bean元素 439

15.5.48 managed-bean-class元素 441

15.5.49 managed-bean-name元素 441

15.5.50 managed-bean-scope元素 442

15.5.51 managed-proper元素 443

15.5.52 map-entries元素 445

15.5.53 map-entry元素 446

15.5.54 message-bundle元素 447

15.5.55 name元素 448

15.5.56 navigation-case元素 450

15.5.57 navigation-handler元素 450

15.5.58 navigation-rule元素 451

15.5.59 null-value元素 452

15.5.60 ordering元素 454

15.5.61 others元素 455

15.5.62 partial-view-context-factory元素 456

15.5.63 phase-listener元素 456

15.5.64 proper元素 457

15.5.65 proper-class元素 459

15.5.66 proper-name元素 459

15.5.67 proper-resolver元素 460

15.5.68 redirect元素 461

15.5.69 referenced-bean元素 462

15.5.70 referenced-bean-class元素 462

15.5.71 referenced-bean-name元素 463

15.5.72 render-kit元素 464

15.5.73 render-kit-class元素 465

15.5.74 render-kit-facto元素 466

15.5.75 render-kit-id元素 466

15.5.76 renderer元素 467

15.5.77 renderer-class元素 468

15.5.78 renderer-type元素 469

15.5.79 resource-bundle元素 470

15.5.80 resource-handler元素 471

15.5.81 source-class元素 471

15.5.82 state-manager元素 472

15.5.83 suggested-value元素 473

15.5.84 supported-locale元素 474

15.5.85 system-event-class元素 475

15.5.86 system-event-listener元素 476

15.5.87 system-event-listener-class元素 477

15.5.88 tag-handler-delegate-facto元素 478

15.5.89 to-view-id元素 478

15.5.90 validator元素 479

15.5.91 validator-class元素 480

15.5.92 validator-id元素 481

15.5.93 value元素 481

15.5.94 value-class元素 483

15.5.95 var元素 485

15.5.96 variable-resolver元素 486

15.5.97 view-declaration-language-factory元素 486

15.5.98 view-handler元素 487

15.5.99 view-param元素 488

15.5.100 visit-context-factory元素 489

15.6扩展元素 489

第16章 标准的JSF组件库 493

16.1 JSF、 Facelet和JSP标签术语概览 493

16.2获取并安装标准库 494

16.2.1下载二进制 494

16.2.2下载源代码 495

16.2.3标准核心库 495

16.2.4 f:actionListener标签 497

16.2.5 f:ajax标签(仅限于2.0) 498

16.2.6 f:attribute标签 499

16.2.7 f:convertDateTime标签 500

16.2.8 f:convertNumber标签 501

16.2.9 f:converter标签 502

16.2.10 f:event标签2.0) 503

16.2.11 f:facet标签 504

16.2.12 f:loadBundle标签 504

16.2.13 f:metadata标签2.0) 505

16.2.14 f:param标签 506

16.2.15 f:phaseListener标签(1.2、 2.0) 507

16.2.16 f:selectItem标签 507

16.2.17 f:selectItems标签 508

16.2.18 f:setPropertyActionListener标签(仅限于1.2、 2.0) 510

16.2.19 f:subview标签 510

16.2.20 f:validateBean标签(2.0) 512

16.2.21 f:validateDoubleRange标签 514

16.2.22 f:validateLength标签 514

16.2.23 f:validateLongRange标签 515

16.2.24 f:validateRegex标签(2.0) 516

16.2.25 f:validateRequired标签(2.0) 517

16.2.26 f:validator标签 518

16.2.27 f:valueChangeListener标签 518

16.2.28 f:verbatim标签 519

16.2.29 f:view标签 520

16.2.30 f:viewParam标签(2.0) 521

16.3标准HTML库 522

16.3.1 h:body标签(2.0) 525

16.3.2 h:button标签(2.0) 526

16.3.3 h:column标签 528

16.3.4 h:commandButton标签 530

16.3.5 h:commandLink标签 532

16.3.6 h:dataTable标签 535

16.3.7 h:form标签 538

16.3.8 h:graphicImage标签 540

16.3.9 h:head标签(2.0) 542

16.3.10 h:inputHidden标签 543

16.3.11 h:inputSecret标签 544

16.3.12 h:inputText标签 546

16.3.13 h:inputTextarea标签 549

16.3.14 h:link标签(2.0) 551

16.3.15 h:message标签 554

16.3.16 messages组件 555

16.3.17 h:outputFormat标签 557

16.3.18 h:outputLabel标签 558

16.3.19 h:outputLink标签 560

16.3.20 h:outputScript标签(2.0) 562

16.3.21 h:outputStylesheet标签 563

16.3.22 h:outputText标签 564

16.3.23 h:panelGrid标签 565

16.3.24 h:panelGroup标签 568

16.3.25 h:selectBooleanCheckbox标签 569

16.3.26 h:selectManyCheckbox标签 571

16.3.27 h:selectManyListbox标签 574

16.3.28 h:selectManyMenu标签 577

16.3.29 h:selectOneListbox标签 579

16.3.30 h:selectOneMenu标签 582

16.3.31 h:selectOneRadio标签 585

16.4标准的Facelet模板库(2.0) 587

16.4.1网站项目示例 588

16.4.2 ui:component标签(2.0) 593

16.4.3 ui:composition标签(2.0) 593

16.4.4 ui:debug标签(2.0) 594

16.4.5 ui:decorate标签(2.0) 594

16.4.6 ui:define标签(2.0) 595

16.4.7 ui:agment标签(2.0) 595

16.4.8 ui:include标签(2.0) 596

16.4.9 ui:insert标签(2.0) 597

16.4.10 ui:param标签(2.0) 597

16.4.11 ui:remove标签(2.0) 598

16.4.12 ui:repeat标签(2.0) 598

16.5标准的Facelet复合组件库(2.0) 599

16.5.1示例项目 600

16.5.2 cc:actionSource标签(2.0) 606

16.5.3 cc:attribute标签(2.0) 606

16.5.4 cc:editableValueHolder标签(2.0) 608

16.5.5 cc:extension标签(2.0) 608

16.5.6 cc:facet标签(2.0) 609

16.5.7 cc: implementation标签(2.0) 609

16.5.8 cc:insertChildren标签(2.0) 610

16.5.9 cc:insertFacet标签(2.0) 610

16.5.10 cc:interface标签(2.0) 611

16.5.11 cc:renderFacet标签(2.0) 612

16.5.12 cc:valueHolder标签(2.0) 613

附录 JSF Portlet 615

A.1 Portlet 1.0与Portlet 2.0概述 615

A.1.1 Portlet的生命周期 615

A.1.2 Portlet的模式 616

A.1.3 Portlet的窗口状态 617

A.1.4 Portlet的首选项 617

A.1.5 Inter-Portlet通信 618

A.2 JSF Portlet开发 619

A.2.1 JSF Portlet Bridge 619

A.2.2 JSF portlet视图处理程序 623

A.2.3 JSF ExtemalContext和Portlet API 624

A.2.4 JSF与Portlet首选项 624

A.2.5 JSF与Inter-Portlet通信 626

A.3 ICEfaces Portlet开发 627

A.3.1具有部分提交功能的ICEfaces Ajax 628

A.3.2 ICEfaces Direct-to-DOM RenderKit 629

A.3.3 ice:portlet标签 629

A.3.4 ICEfaces 1.x Portlet Bridge 629

A.3.5 ICEfaces 1.x D2DFacelet-ViewHandler 630

A.3.6 ICEfaces 1.x与Portlet 窗口状态 631

A.3.7 ICEfaces Portlet与并行的DOM视图 631

A.3.8 ICEfaces 1.x扩展请求范围 631

A.3.9 ICEfaces Ajax Push与 Inter-Portlet通信 632

A.3.10 ICEfaces主题与门户主题 635

A.3.11 ICEfaces主题与Liferay主题 636

A.3.12 ICEfaces Ajax Bridge与 Liferay Portal 637

A.3.13 ICEfaces Portlet与Liferay请求特性 638

A.4 PortletFaces 638

A.4.1下载PortletFaces 639

A.4.2 PortletFacesContext 639

A.4.3 PortletFaces标签 640

A.4.4 PortletFaces与Portlet 首选项 641

A.4.5 PortletFaces表达式语言添置 642

A.4.6 PortletFaces与本地化 644

A.4.7 Liferay语言的Portlet一体化 645

A.4.8 改善Liferay与ICEfaces 1.x 的一体化 645