JSF 2 简介: 后来添加的 Ajax 复合组件
2010-07-13 00:00:00 来源:WEB开发网核心提示: <util:iconimage="..."><f:ajax><f:actionListenerfor="link"type="..."></util:icon>上面的代码片段不会生效,因为
<util:icon image="...">
<f:ajax>
<f:actionListener for="link" type="...">
</util:icon>
上面的代码片段不会生效,因为我向图标组件附加了 <f:ajax> 标记,我真正想要做的是将它附加到图标内部的链接上。
在本例中,我需要的是一种允许我将 Ajax 行为附加到图标内部的链接的机制,或者更一般地,允许我将 Ajax 行为附加到复合组件内部的组件。这种机制(在 Mojarra 和 Apache MyFaces 中实现过,而在 JSF 2.0 中完全没有记录)是本文讨论的重点。(注意:在编写本文时已添加了 MyFaces 支持。)在了解该机制的工作原理之前,我将创建一个新的图标复合组件供使用。
可重用的图标组件
想象一下您拥有一项全世界最酷的工作。也许您正在实现新一代魔兽世界图形引擎。但遗憾的是,这只是个梦想。今天,您要实现的是如图 1 所示的字体选择程序:
图 1. 选择一种字体
查看原图(大图)
您的上司问您实现此选择程序将需要多长时间。他们用户能够单击 2 字符预览窗口中的 + 和 - 图标来更改字体大小。当然,他们希望使用 Ajax,以便预览窗口和图标旁边显示的大小会自动更新,而无需对页面的其余部分进行操作。
您的上司希望得到的是一个简单的字体选择程序组件,但您知道这并不简单。您将实现一个通用的图标组件,这个组件可在运行时使用一个图像和一个操作进行配置,而且能够完全 Ajax 化,然后您将在字体预览窗口使用您的图标组件。通过这种方式,您将得到一个在将来迟早会用上的图标组件。
更多精彩
赞助商链接