内容简介
第Ⅰ部分JavaServer Faces框架
第1章 JavaServer Faces简介
1.1 什么是JavaServer Faces
1.2 JavaServer Faces的历史
1.2.1 公共网关接口
1.2.2 Servlet API
1.2.3 Java服务器页面
1.2.4 Apache Struts
1.2.5 Spring框架和Spring MVC
1.2.6 JavaServer Faces的诞生
1.3 JavaServer Faces设计目标
1.4 JSF应用程序架构
1.4.1 JSF请求处理生命周期
1.4.2 JSF导航模型
第2章 构建一个简单的JavaServer Faces应用程序
2.1 应用程序概述
2.1.1 JSFReg应用程序文件
2.1.2 JSF软件栈
2.1.3 装配JSFReg应用程序
2.1.4 配置文件
2.1.5 Facelets页面
2.2 构建和运行应用程序
2.3 应用程序关键部分回顾
第3章 JavaServer Faces请求处理生命周期
3.1 JSF请求处理生命周期概述
3.1.1 请求处理生命周期的功能
3.1.2 与基他Wob技术的区别
3.1.3 服务吕端视图的自动管理与同步
3.1.4 请求处理生命周期的各阶段
3.2 通心粉生境垂下生命周期
3.3 与请求处理生财戎关的高级主题
3.3.1 使用immediate属性
3.3.2 阶段侦听器
3.3.3 异常处理程序
3.4 关键的重创周期概念
第4章 Facelets 视图声明语言
4.1 JSF中使用模板化的威力
4.2 JSP与Facelets 的异同
4.3 使用Facelets 执行模板化
4.4 Facelets 模板化标签使用指南
4.4.1 ui:composition
4.4.2 ui:dexorate
4.4.3 ui:derinc
4.4.4 ui:insen
4.4.5 ui:include
4.4.6 ui:param
4.5 Facelets 非模板化标签使用批南
4.5.1 ui:component
4.5.2 ui:fragment
4.5.3 ui:remove
4.5.4 ui:debug
第5章 托管bean与JSF表达式语言
5.1托管bean概念
5.1.1简单托管bean示例
5.1.2初始化托管bean属性
5.1.3把List和Map声明为托管bean
5.1.4托管bean的相互依赖
5.1.5使用EL设置托管属性
5.2控制托管bean生命周期
5.3 JSF表达式语言
5.3.1 JSF 1.1与JSF 1.2之间表达式语言的关键区别
5.3.2统一EL概念
5.3.3值表达式
5.3.4表达式操作符
5.3.5方法表达式
5.4托管 bean的Web应用程序开发细节
5.4.1采用编程方式访问托管bean
5.4.2使用托管bean作为JSF页面的支撑bean
第6章 导航模型
6.1使用隐式导航
6.2 JSF导航系统概述
6.2.1回顾MvC——控制器
6.2.2 NavigationHandle——幕后主管
6.2.3 Faces动作方法说明
6.3构建导航规则
6.3.1静态导航示例
6.3.2动态导航示例
6.4更复杂的导航示例
6.4.1使用通配符
6.4.2使用条件导航
6.4.3使用重定向
6.4.4视图参数的XML配置
6.4.5在Servlet错误页上使用JSF 组件
第7章 用户界面组件模型
7.1什么是用户界面组件
7.1.1基于组件的Web开发的兴起
7.1.2 JavaServer Faces用户界面组件的目标
7.2 JSF用户界面组件架构介绍
7.2.1用户界面组件树(视图)
7.2.2用户界面组件和相关的“活动部分”
7.3组件资源
7.4用户界面组件和Facelets
7.4.1用编程方式访问用户界面组件
7.4.2在JSF视图中绑定用户界面组件的有用建议
第8章 数据转换与数据验证
8.1验证和转换的示例
8.2转换和验证揭秘
8.3 Faces转换器系统
8.3.1 DateTimeConverter
8.3.2 NumberConverter
8.3.3关联转换器与UIComponent实例
8.3.4转换器的生命周期
8.3.5定制转换器
8.4 Faces验证系统
8.4.1 LongRangeValidator
8.4.2 DoubleRangeValidator
8.4.3 LengthValidator
8.4.4必需的工具Required-Validator
8.4.5 RegExValidator
8.4.6 BeanValidator
8.5关联验证器与UIComponent实例
8.5.1使用标记关联验证器与UIComponent实例
8.5.2利用标记和验证器属性关联验证器与UIComponent实例
8.5.3采用编程方式关联验证器与UIComponent实例
8.5.4验证器的生命周期
8.5.5定制验证器
8.6使用JSF的bean验证
8.6.1什么是bean验证
8.6.2 JSF验证和bean验证之间的区别
8.6.3使用JSF的bean验证的细节
8.6.4使用bean验证方式验证JSF托管bean属性
8.7汇总:视图上的消息
8.7.1 FacesContext上与FacesMessage相关的方法
8.7.2 UIViewRoot及其Locale属性
8.7.3何时、如何创建FacesMessage实例并把它添加到FacesContext
8.7.4 FacesMessages的渲染
8.7.5消息和bean验证
第9章 JSF事件模型
9.1 JSF事件模型概述
9.2 JSF事件的工作方式
9.2.1 Faces事件侦听器接口和事件类
9.2.2处理Faces事件的时机
9.2.3应用程序事件
9.2.4剖析值修改事件
9.3编写定制动作和值修改侦听器
9.4更多的Faces事件示例
9.4.1使用值修改事件自动填充字段
9.4.2扩展值修改示例
9.5使用阶段事件和侦听器
9.6使用系统事件和侦听器
9.6.1怎样发布系统事件
9.6.2怎样订阅系统事件
9.7创建定制应用程序事件和侦听器的一般规则
第 Ⅱ部分 扩展JavaServer Faces
第10章 应用JSF:虚拟教练应用程序简介
10.1虚拟教练应用程序概观
10.1.1注册和登录到虚拟教练应用程序
10.1.2创建新的训练赛事检测计划
10.1.3选择教练
10.1.4只有教练可以执行的动作
10.2虚拟教练应用程序需求
10.3虚拟教练应用程序架构
10.4 Facelet页面
10.4.1 Web应用程序根目录中的页面
10.4.2 /user目录中的页面
10.4.3 /trainer目录中的页面
10.4.4 /resources目录中的页面
10.5支撑bean
10.6持久性和事务架构
10.7与导航相关的问题
10.8创建简单的验证系统
10.9重温JSFReg:构建注册系统
10.10构建虚拟教练应用程序的核心页面
10.10.1创建allEvents.xhtml页面
10.10.2 editTrainingEvent.xhtml的教练版本
10.10.3创建viewTrainees.xhtml和viewTrainingSessions-ForUser.xhtml页面
10.11 UserRegist和EventRegist
10.11.1访问和初始化UserRegist实例
10.11.2读写User实例
10.11.3读写TrainingSession实例
10.12访问和初始化EventRegist实例
10.13读写Event实例
10.14虚拟教练应用程序中的JPA和实体类
10.14.1 JPA的XML配置文件persistence.xml
10.14.2定制ExceptionHandler示例
10.15 虚拟教练应用程序的国际化
10.16对于虚拟教练应用程序的最后评论
第11章 构建定制用户界面组件
11.1构建定制用户界面组件的时机
11.2用户界面组件定义
11.3简单的JSF用户界面组件
11.4简单JSF用户界面组件标记背后的代码
11.5为用户界面组件添加行为
11.5.1复合组件细节初探
11.5.2 #{cc}隐式对象
11.6用户界面组件的各部分
11.7非组合JSF定制用户界面组件
11.7.1构建HtmlHelloWorld示例
11.7.2接收表单输入的Hello-World用户界面组件
11.7.3 JSF股票报价组件
11.8定制界面组件的状态管理
11.8.1对StateHelper的写操作
11.8.2对StateHelper的读操作
11.8.3从StateHelper中删除值
11.9将渲染代码提取到渲染器中
11.9.1创建定制Facelet标签库TagHandler
11.9.2使用RenderKit支持多种客户端设备类型
11.10高级复合组件的开发
11.10.1为〈vt:loginPanel〉创建支撑类
11.10.2回顾复合组件特性
11.11将JSF组件打包成自包含的Jar文件
11.12将复合组件打包成jar文件
11.12.1将复合组件Facelet文件打包
11.12.2为定制组件库声明定制名称空间URL
11.12.3将复合组件的支撑类打包
11.13将非复合组件打包成Jar文件
11.13.1 JSF运行时如何装载faces-config.xml文件
11.13.2 JSP运行时如何加载TLD文件
第12章 JSF与Ajax
12.1 Ajax概述
12.2 JSFReg应用程序中的简单Ajax示例
12.3 〈f:ajax〉标签及其特性
12.4标准JavaScript资源
第13章 构建非用户界面定制组件
13.1 JSF中的非用户界面定制组件和装饰
13.2非视图定制组件释义
13.2.1 PhaseListener
13.2.2转换器和验证器
13.2.3 ViewHandler
13.2.4 VariableResolver和Property-Resolver
13.2.5 ELResolver(JSF 1.2)
13.2.6 NavigationHandler
13.2.7 ActionListener
13.2.8 StateManager
13.2.9 RenderKit
13.2.10 JSF中的工厂模式
13.3其他的非用户界面组件主题
13.3.1告诉JSF运行时处在软件开发生命周期的哪个阶段:ProjectStage
13.3.2 Custom Scopes
第14章 保护JavaServer Faces应用程序
14.1 Web应用程序安全所涉及的方面和实现过程
14.2容器管理的安全
14.2.1容器管理的身份验证
14.2.2基本身份验证和“领域”的概念
14.2.3基于表单的身份验证
14.2.4证书身份验证
14.2.5容器管理的授权和角色的概念
14.2.6容器管理的数据安全
14.2.7对“虚拟教练”安全的微小改善
14.3用JavaServer Faces实现应用程序管理的安全
14.3.1在JSF应用程序中利用JAAS
14.3.2在“虚拟教练”中使用JAAS身份验证
14.4学习更多关于安全的知识
第Ⅲ部分 JavaServer Faces工具与库
第15章 配置JavaServer Faces应用程序
15.1理解XML方案
15.2理解配置文件的处理过程
15.3 faces-config.xml文件的顺序
15.4 JSF运行时为配置内注扫描类
15.5 Faces配置元素
15.5.1 absolute-ordering元素
15.5.2 action-listener元素
15.5.3 after元素
15.5.4 application元素
15.5.5 application-facto元素
15.5.6 attribute元素
15.5.7 attribute-class元素
15.5.8 attribute-name元素
15.5.9 base-name元素
15.5.10 before元素
15.5.11 behavior元素
15.5.12 behavior-class元素
15.5.13 behavior-id元素
15.5.14 client-behavior-renderer元素
15.5.15 client-behavior-renderer-class元素
15.5.16 client-behavior-renderer-type元素
15.5.17 component元素
15.5.18 component-class元素
15.5.19 component-family元素
15.5.20 component-pe元素
15.5.21 converter元素
15.5.22 converter-class元素
15.5.23 converter-for-class元素
15.5.24 converter-id元素
15.5.25 default-locale元素
15.5.26 default-render-kit-id元素
15.5.27 default-validators元素
15.5.28 default-value元素
15.5.29 el-resolver元素
15.5.30 exception-handle-facto元素
15.5.31 external-context-facto元素
15.5.32 faces-config元素
15.5.33 faces-context-facto元素
15.5.34 facet元素
15.5.35 facet-name元素
15.5.36 factory元素
15.5.37 from-action元素
15.5.38 from-outcome元素
15.5.39 from-view-id元素
15.5.40 if元素
15.5.41 key元素
15.5.42 key-class元素
15.5.43 lifecycle元素
15.5.44 lifecycle-facto元素
15.5.45 list-entries元素
15.5.46 locale-config元素
15.5.47 managed-bean元素
15.5.48 managed-bean-class元素
15.5.49 managed-bean-name元素
15.5.50 managed-bean-scope元素
15.5.51 managed-proper元素
15.5.52 map-entries元素
15.5.53 map-entry元素
15.5.54 message-bundle元素
15.5.55 name元素
15.5.56 navigation-case元素
15.5.57 navigation-handler元素
15.5.58 navigation-rule元素
15.5.59 null-value元素
15.5.60 ordering元素
15.5.61 others元素
15.5.62 partial-view-context-factory元素
15.5.63 phase-listener元素
15.5.64 proper元素
15.5.65 proper-class元素
15.5.66 proper-name元素
15.5.67 proper-resolver元素
15.5.68 redirect元素
15.5.69 referenced-bean元素
15.5.70 referenced-bean-class元素
15.5.71 referenced-bean-name元素
15.5.72 render-kit元素
15.5.73 render-kit-class元素
15.5.74 render-kit-facto元素
15.5.75 render-kit-id元素
15.5.76 renderer元素
15.5.77 renderer-class元素
15.5.78 renderer-type元素
15.5.79 resource-bundle元素
15.5.80 resource-handler元素
15.5.81 source-class元素
15.5.82 state-manager元素
15.5.83 suggested-value元素
15.5.84 supported-locale元素
15.5.85 system-event-class元素
15.5.86 system-event-listener元素
15.5.87 system-event-listener-class元素
15.5.88 tag-handler-delegate-facto元素
15.5.89 to-view-id元素
15.5.90 validator元素
15.5.91 validator-class元素
15.5.92 validator-id元素
15.5.93 value元素
15.5.94 value-class元素
15.5.95 var元素
15.5.96 variable-resolver元素
15.5.97 view-declaration-language-factory元素
15.5.98 view-handler元素
15.5.99 view-param元素
15.5.100 visit-context-factory元素
15.6扩展元素
第16章 标准的JSF组件库
16.1 JSF、 Facelet和JSP标签术语概览
16.2获取并安装标准库
16.2.1下载二进制
16.2.2下载源代码
16.2.3标准核心库
16.2.4 f:actionListener标签
16.2.5 f:ajax标签(仅限于2.0)
16.2.6 f:attribute标签
16.2.7 f:convertDateTime标签
16.2.8 f:convertNumber标签
16.2.9 f:converter标签
16.2.10 f:event标签2.0)
16.2.11 f:facet标签
16.2.12 f:loadBundle标签
16.2.13 f:metadata标签2.0)
16.2.14 f:param标签
16.2.15 f:phaseListener标签(1.2、 2.0)
16.2.16 f:selectItem标签
16.2.17 f:selectItems标签
16.2.18 f:setPropertyActionListener标签(仅限于1.2、 2.0)
16.2.19 f:subview标签
16.2.20 f:validateBean标签(2.0)
16.2.21 f:validateDoubleRange标签
16.2.22 f:validateLength标签
16.2.23 f:validateLongRange标签
16.2.24 f:validateRegex标签(2.0)
16.2.25 f:validateRequired标签(2.0)
16.2.26 f:validator标签
16.2.27 f:valueChangeListener标签
16.2.28 f:verbatim标签
16.2.29 f:view标签
16.2.30 f:viewParam标签(2.0)
16.3标准HTML库
16.3.1 h:body标签(2.0)
16.3.2 h:button标签(2.0)
16.3.3 h:column标签
16.3.4 h:commandButton标签
16.3.5 h:commandLink标签
16.3.6 h:dataTable标签
16.3.7 h:form标签
16.3.8 h:graphicImage标签
16.3.9 h:head标签(2.0)
16.3.10 h:inputHidden标签
16.3.11 h:inputSecret标签
16.3.12 h:inputText标签
16.3.13 h:inputTextarea标签
16.3.14 h:link标签(2.0)
16.3.15 h:message标签
16.3.16 messages组件
16.3.17 h:outputFormat标签
16.3.18 h:outputLabel标签
16.3.19 h:outputLink标签
16.3.20 h:outputScript标签(2.0)
16.3.21 h:outputStylesheet标签
16.3.22 h:outputText标签
16.3.23 h:panelGrid标签
16.3.24 h:panelGroup标签
16.3.25 h:selectBooleanCheckbox标签
16.3.26 h:selectManyCheckbox标签
16.3.27 h:selectManyListbox标签
16.3.28 h:selectManyMenu标签
16.3.29 h:selectOneListbox标签
16.3.30 h:selectOneMenu标签
16.3.31 h:selectOneRadio标签
16.4标准的Facelet模板库(2.0)
16.4.1网站项目示例
16.4.2 ui:component标签(2.0)
16.4.3 ui:composition标签(2.0)
16.4.4 ui:debug标签(2.0)
16.4.5 ui:decorate标签(2.0)
16.4.6 ui:define标签(2.0)
16.4.7 ui:agment标签(2.0)
16.4.8 ui:include标签(2.0)
16.4.9 ui:insert标签(2.0)
16.4.10 ui:param标签(2.0)
16.4.11 ui:remove标签(2.0)
16.4.12 ui:repeat标签(2.0)
16.5标准的Facelet复合组件库(2.0)
16.5.1示例项目
16.5.2 cc:actionSource标签(2.0)
16.5.3 cc:attribute标签(2.0)
16.5.4 cc:editableValueHolder标签(2.0)
16.5.5 cc:extension标签(2.0)
16.5.6 cc:facet标签(2.0)
16.5.7 cc: implementation标签(2.0)
16.5.8 cc:insertChildren标签(2.0)
16.5.9 cc:insertFacet标签(2.0)
16.5.10 cc:interface标签(2.0)
16.5.11 cc:renderFacet标签(2.0)
16.5.12 cc:valueHolder标签(2.0)
附录 JSF Portlet
A.1 Portlet 1.0与Portlet 2.0概述
A.1.1 Portlet的生命周期
A.1.2 Portlet的模式
A.1.3 Portlet的窗口状态
A.1.4 Portlet的首选项
A.1.5 Inter-Portlet通信
A.2 JSF Portlet开发
A.2.1 JSF Portlet Bridge
A.2.2 JSF portlet视图处理程序
A.2.3 JSF ExtemalContext和Portlet API
A.2.4 JSF与Portlet首选项
A.2.5 JSF与Inter-Portlet通信
A.3 ICEfaces Portlet开发
A.3.1具有部分提交功能的ICEfaces Ajax
A.3.2 ICEfaces Direct-to-DOM RenderKit
A.3.3 ice:portlet标签
A.3.4 ICEfaces 1.x Portlet Bridge
A.3.5 ICEfaces 1.x D2DFacelet-ViewHandler
A.3.6 ICEfaces 1.x与Portlet 窗口状态
A.3.7 ICEfaces Portlet与并行的DOM视图
A.3.8 ICEfaces 1.x扩展请求范围
A.3.9 ICEfaces Ajax Push与 Inter-Portlet通信
A.3.10 ICEfaces主题与门户主题
A.3.11 ICEfaces主题与Liferay主题
A.3.12 ICEfaces Ajax Bridge与 Liferay Portal
A.3.13 ICEfaces Portlet与Liferay请求特性
A.4 PortletFaces
A.4.1下载PortletFaces
A.4.2 PortletFacesContext
A.4.3 PortletFaces标签
A.4.4 PortletFaces与Portlet 首选项
A.4.5 PortletFaces表达式语言添置
A.4.6 PortletFaces与本地化
A.4.7 Liferay语言的Portlet一体化
A.4.8 改善Liferay与ICEfaces 1.x 的一体化