首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

后来添加的 Ajax 复合组件(3)

后来添加的 Ajax 复合组件(3)

实现图标复合组件图标有 3 个需求:
  • 图像必须是可配置的。
  • 用户单击图像时触发的动作是可配置的。
  • 图标必须支持 Ajax。
在清单 4 中,我满足了前两个需求:
清单 4. <util:icon> 复合组件,版本 1 (/resources/util/icon.xhtml)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:composite="http://java.sun.com/jsf/composite">
     
    <composite:interface>
      <composite:attribute    name="image" required="true"/>
      <composite:actionSource name="link"  targets="#{cc.clientId}:iconForm:link"/>
    </composite:interface>

    <composite:implementation>
      <div id="#{cc.clientId}">
         <h:form id="iconForm">
            <h:commandLink id="link" immediate="true">
              <h:graphicImage value="#{cc.attrs.image}"/>
            </h:commandLink>
         </h:form>
       </div>
    </composite:implementation>   
</html>




中的图标组件声明一个 image 属性和一个名为 link 的 actionSource。该 actionSource 在  中用作 <f:actionListener> 的 for 属性的值。如果还不太明白,您可以查看 “” 了解动作源如何处理复合组件,其中简短讨论了一个与  中类似的图标实现。
中的图标组件实现允许页面作者配置图标的外观和行为,但不允许作者将 Ajax 行为附加到组件。完成实现之后,如果用户单击一个图像,JSF 会提交整个页面,在收到返回值时完全重新绘制该页面。
现在您将看到如何让页面作者将 Ajax 添加到图标组件。
返回列表