- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
扩展核心JSF类
附录 C
扩展核心JSF 类
如前所述,JSF 最引人注目的优点之一就是其可插入架构。其大部分特征都是通过可以
轻易被可选实现所替代的类来处理的,这些可选实现可以增强或者替换默认的行为。
这也正是你可以使用 JSP 之外的显示技术 (见附录A ),而且它也是允许你修改 JSF 处理表达式、
导航、状态管理、默认的动作监听器等等方式的原因。
在这个附录中,我们将研究 JSF 的架构并讨论如何扩展其核心特征。
顺便 为何将这些内容放到附录而不是章节正文中呢?这有个简单原因:大多数开发人员使用默
说说 认的行为和特征就足够了,并不需要关心JSF的内部。但是,如果你想要进行高级JSF开发,
你将会对JSF的架构很感兴趣,或者你只是想以某种方式定制化某个实现,这个附录就是
针对你的。
C.1 隐藏于幕后的类
核心的 JSF 类可以分为两种:基础架构类和可插入类。基础类包括 Lifecycle、RenderKit、
Application 和 FacesContext。Lifecycle 用于执行请求处理生命周期。RenderKit 则用于
管理呈现器集合,而 Application 则维护着对可插入类的的引用,并且提供对其他配置信息的
访问。最后是 FacesContext,它处理所有针对请求的功能。
所有这些类都是由工厂创建的,该工厂是在应用配置文件中配置的,并且可通过
FactoryFinder (它是一个singleton )定位。这些类都被列于表C-1 中。
表C-1 基础类形成了JSF 功能的骨架
类 说 明 可配置?
javax.faces.FactoryFinder 创建并保存工厂实例。具体的工厂实现可通 否
过 查 询 有 效 的 配 置 文 件 找 到 , 或 者 从
META-INF/ services/{factory-class-name} 文件
(位于Web 应用自身或者其库路径的任何
JAR 中)中的第一行获得
附录 C 扩展核心 JSF 类 695
(续)
类 说 明 可配置?
javax.faces.lifecycle. LifecycleFactory 创建并保存 Lifecycle 实例 是
javax.faces.lifecycle. Lifecycle 运行请求处理生命周期。通常功能是通过 否
PhaseListeners 添加的,它可以在代码
中或者在配置文件中注册
javax.faces.render. RenderKitFactory 管理 RenderKit 实例的集合 是
javax.faces.render.RenderKit 管理 Renderer 实例的集合。包含对一个 是
ResponseStateManager 实例的引用,后
者处理呈现器特定的状态管理工作
javax
文档评论(0)