写点什么

JavaServer Faces 2.0 复合组件

  • 2008-11-08
  • 本文字数:1276 字

    阅读完需:约 4 分钟

自从 JavaServer Faces 于 2004 年首次发布后,JSF 2.0 就成为 Java EE 标准规范的首个主要更新。JSF 2.0 是 JSF 规范的一次重要革新,其目的在于解决开发者使用 Web 框架时所遇到的诸多问题。主要的变化包括:

  1. 使用基于 Facelets 的视图技术代替 JSP。
  2. 提供一种标准化的资源处理机制:很多组件都需要诸如 JavaScript 文件、图片或者是 CSS 元素等内容来正确地进行渲染。JSF 1.x 无法方便地处理这些内容,所以组件开发者不得不开发自己的处理机制。
  3. 可重新定位的资源:我们可以指定在哪里渲染资源,这个渲染位置可能与视图中的资源标签位置不同。这使得我们可以定制组件和 JSF 页面以在恰当的地方渲染引用的资源,这样即使组件被包含在 body 中,我们也可以在中引用 CSS 文件。
  4. 系统事件:发布 / 订阅的事件模型所支持的事件不再特定于一个具体的应用,而是起源于 JSF 应用执行过程中的特定时间点。UI 组件和应用对象(这是一个单例)都能收到系统事件。
  5. 增加的 scopes:增加了视图 scope 和组件 scope。对对话 scope 的支持预计会通过 Web Beans API 增加。
  6. “project stage”参数的标准化:Project stage 提供一种方式来影响 JSF 的行为,这以一组预先定义好的阶段枚举为基础,而这些阶段可以通过上下文参数或者 JNDI 进行设置。比如说,产品化开发和检查期间可以在浏览器中显示更多的调试信息。已定义的阶段有产品化、开发、单元测试、系统测试及产品化扩展阶段,并将产品化扩展作为默认值。你可以在运行时通过调用 Application.getProjectStage() 来查询应用对象以获得相应的值。
  7. 通过使用注解和默认值来减少 XML。
  8. 扩展 JSF 1.2 中引入的 AJAX 支持。

JSF 2.0 一下子提供这么多改进的目的在于解决开发者在使用 JSF 1.x 时遇到的一个主要问题——构建自定义组件的复杂性。使用 JSF 1.x 时,组件开发者要想开发出可以使用在标记页面上的自定义组件必须得遵循大量步骤。至少要实现 JSP 或 Facelets 的标记处理器,同时还要为该组件提供一个渲染器,这两项工作都需要在 faces-config.xml 文件中进行相应的配置。以 JSF 为中心的 Facelets 是 JSP 的一个替代方案,被 JSF 开发者广泛使用,它通过复合组件来支持模板,这在一定程度上改进了 JSF。这种方式需要创建一个包含模板标记和组件的 XHTML 页面,然后将这些页面作为组件在其它页面中使用。任何有效的 Facelet XHTML 页面都可以作为组件使用,与 JSF 1.x 中使用 Facelets 不同,JSF 2 中的复合组件都是真正的 UIComponents,这样它们就会支持验证器、转换器及监听器(可以监听行为和值的变化)。复合组件以资源的形式被处理, 因此它们可以使用新式的标准资源处理机制。例如,有一个名为 MenuPanel.html 的 Facelet 标记文件位于 ezcomp 资源库中,页面创建者就可以声明 xml 名称空间 xmlns:ez=http://java.sun.com/jsf/composite/ezcomp,并在页面中包含 & lt;ez:menuPanel /> 标记,以此来使用该组件。

JSF 2.0 专家组已经发布了 JSF 2.0 的第二个草案,该草案可从 JCP 站点上下载。该草案还有一个实现。规范的最终草案将会于今年年底出台。

查看英文原文: JavaServer Faces 2.0 Composite Components

2008-11-08 08:35949
用户头像

发布了 88 篇内容, 共 264.3 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

2025深圳电子展,中国(深圳)国际电子信息展览会

AIOTE智博会

电子展 深圳电子展 电子信息展

Vision Pro中国区正式发售,腾讯云助力腾讯视频3D放映高清画质体验

Geek_2d6073

华为云技术新突破:Flexus X实例以其柔性算力加速企业一键上云

YG科技

企业数字化上云如何解?Flexus X实例柔性算力一键用

平平无奇爱好科技

数据仓库设计

Jackchang234987

数据仓库 数据产品 埋点

国际营销推广

cts喜友科技

营销 国际贸易 国际营销

Kotlin 实现 RecyclerView 适配器的标准写法

小曾同学.com

kotlin RecyclerView 适配器 viewholder RecyclerView.Adapter

在线打开AI文件,仅需3步!附免费白板软件推荐

彭宏豪95

AI 效率工具 设计师 在线白板 办公软件

华为云Flexus云服务器 X实例以黑科技驱动,开辟高性能低成本云服务新路径

平平无奇爱好科技

华为云Flexus X实例柔性算力、6倍性能!中等业务负载场景首选

平平无奇爱好科技

【7月最新】最简单的GPT4.0升级教学

蓉蓉

openai 一gpt4.0

以太坊DApp交易量激增83%的背后原因解析

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

SD中的VAE,你不能不懂

程序那些事

程序那些事 Stable Diffusion

华为云Flexus云服务器X实例:柔性算力新物种,越用越省!

YG科技

以初创游戏公司为例,看华为云Flexus X实例如何赋能中小企业提质增效

平平无奇爱好科技

中小企业首选柔性算力服务器,Flexus X实例加速云上性能飞跃

平平无奇爱好科技

camtasia怎么录制自己的声音 camtasia studio如何录制内部声音 camtasia怎么录制电脑视频

阿拉灯神丁

录屏软件 视频剪辑处理 软件包 Camtasia Studio2024 音频录制

JavaServer Faces 2.0复合组件_Java_Charles Humble_InfoQ精选文章