日期:2014-05-16 浏览次数:20445 次
(转自: http://www.ibm.com/developerworks/cn/java/j-jsf2fu3/ )
?
2009 年 8 月 03 日 JSF 的最大卖点在于它是一种基于组件的框架。这意味着您可以实现供其他人重用的组件。这种强大的重用机制在 JSF 1 中基本上是不可能实现的,因为在 JSF 1 中实现组件是非常困难的事情。 然而,正如?
第 2 部分
?
所述,JSF 2 通过一种名为复合组件
?
的新特性简化了组件的实现 — 无需 Java 代码和配置。这一特性可以说是 JSF 2 中最重要的部分,因为它真正实现了 JSF 组件的潜力。 在这份有关 JSF 2 的第三篇也是最后一篇文章中,我将展示如何利用新的 Ajax 和事件处理功能(也在 JSF 2 中引入)构建复合组件特性,要从 JSF 2 中获得最大收益,需要遵循下面的技巧: 对于第一个技巧,我将简要回顾已在?
第 2 部分
?
中详细描述过的两个组件。对于后面的技巧,我将展示如何使用 Ajax 和事件处理功能来改造这些组件。 技巧 1:组件化
我在?
第 1 部分
?
中引入的 places 应用程序包含有大量复合组件。其中之一便是?
清单 1 显示了经过删减的?
Java?Server Faces (JSF) 2 专家组成员 David Geary 将在这一期文章中结束这部有关 JSF 2 新特性的?
系列文章(共 3 部分)
。本文介绍如何使用该框架的新事件模型和内置 Ajax 支持来增强可重用组件的功能。
map
?
组件,它显示一个地址地图,其中包含一个缩放级别下拉菜单,如图 1 所示:
图 1. places 应用程序的?
map
?
组件
map
?
组件列表:
清单 1.?
map
?
组件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<html xmlns="http://www.w3.org/1999/xhtml"
...
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:places="http://java.sun.com/jsf/composite/components/places">
<!-- INTERFACE -->
<composite:interface>
<composite:attribute name="title"/>
</composite:interface>
<!-- IMPLEMENTATION -->
<composite:implementation">
<div class="map">
...
<h:panelGrid...>
<h:panelGrid...>
<h:selectOneMenu
onchange="submit()"
value="#{cc.parent.attrs.location.