我相信大多数ADF开发人员都知道ADF Faces属性clientComponent 。 在这篇文章中,我将展示此属性实际上如何影响组件渲染以及它如何改变其行为。 让我们开始考虑一个非常简单的示例:

<af:inputText label="Label 1" id="it1" />
<af:outputText value="outputText1" id="ot1"/>

结果页面如下所示:

让我们看一下生成的html:

我们可以看到我们的outputText已变成简单的文本字符串。 没有任何组件代表它。 Java脚本表达式AdfPage.PAGE.findComponent(“ ot1”)将返回“ undefined” 。 甚至表达式document.getElementById(“ ot1”)也将返回null。 因此,我们既没有ADF Faces JS丰富对象,也没有对应于outputText的本机DOM元素。 没事

让我们的示例更加复杂:

<af:inputText label="Label 1" id="it1" autoSubmit="true"value="#{MainTest.someValue}"valueChangeListener="#{MainTest.inputTextListener}"/>
<af:outputText value="#{MainTest.someValue}" id="ot1" binding="#{MainTest.outputText}"/>

inputText将其值存储在托管bean中,并且此值应由outputText呈现。 inputTextvalueChangeListeneroutputText作为部分目标添加到faces上下文中:

public void inputTextListener(ValueChangeEvent valueChangeEvent) {AdfFacesContext ctx = AdfFacesContext.getCurrentInstance();ctx.addPartialTarget(outputText);
}

一切似乎都还可以,但是没有用。 此外,我们会在日志中找到以下消息:

<PprResponseWriter$PPRTag> <finish> no PPR-capable ID found for elements of: RichOutputText[UIXFacesBeanImpl, id=ot1]

这是因为客户端上没有相应的组件。 outputText仅由简单文本表示。

好吧,让我们将outputText的 clientComponent设置为true:

<af:outputText value="#{MainTest.someValue}" id="ot1" binding="#{MainTest.outputText}"clientComponent="true"/>

这样我们的例子就起作用了

看一下html:

有呈现的html标签跨度 ,它表示我们的outputText。 Java脚本表达式document.getElementById(“ ot1”)返回HTMLSpanElement。 AdfPage.PAGE.findComponent(“ ot1”)表达式返回AdfRichOutputText ,它是由以下JS代码创建的ADF Faces JS对象:

好的,就部分渲染而言,让outputText依赖于inputText

<af:inputText label="Label 1" id="it1" autoSubmit="true"value="#{MainTest.someValue}"/>
<af:outputText value="#{MainTest.someValue}" id="ot1" partialTriggers="it1"/>

这个例子比上一个例子简单,并且可以工作。 JS表达式document.getElementById(“ ot1”)返回HTMLSpanElement,但是AdfPage.PAGE.findComponent(“ ot1”)表达式返回“ undefined” 。 没有为outputText创建任何ADF Faces客户端对象但是已渲染DOM元素( span )。

实际上,通常使用clientComponent属性来获取在客户端创建的ADF Faces JS对象。 但是,除此之外, clientComponent属性强制呈现组件的DOM元素,有时我们可能仅出于该原因需要使用clientComponent属性。 我们在第一个示例中这样做了,并使它正常工作。

而已!

参考: ADF练习博客上的JCG合作伙伴 Eugene Fedorenko 了解了ADF Faces clientComponent属性 。

翻译自: https://www.javacodegeeks.com/2013/05/understanding-adf-faces-clientcomponent-attribute.html

了解ADF Faces clientComponent属性相关推荐

  1. adf开发_了解ADF Faces clientComponent属性

    adf开发 我相信大多数ADF开发人员都知道ADF Faces属性clientComponent . 在本文中,我将展示该属性实际上如何影响组件渲染以及它如何改变其行为. 让我们开始考虑一个非常简单的 ...

  2. adf开发_在EL表达式中引用ADF Faces组件

    adf开发 EL表达式通常用于在页面上指定ADF Faces组件的属性值. 有趣的是,我们可以使用component关键字来引用要为其评估EL表达式的组件实例. 这是略与此类似Java中. 例如,在以 ...

  3. 在EL表达式中引用ADF Faces组件

    EL表达式通常用于在页面上指定ADF Faces组件的属性值. 有趣的是,我们可以使用component关键字来引用要为其评估EL表达式的组件实例. 这是略与此类似Java中. 例如,在以下代码段中, ...

  4. ADF Faces Core 标记库信息

    示例图像< af:attribute > 该属性标记是 JSF 标记 < f:attribute > 的修正版.该 JSF 标记用于求解绑定到该值属性的 ValueBindin ...

  5. adf4351_在ADF实体PK属性中使用MySQL自动增量PK列

    adf4351 大家好. 继续进行ADF + MySQL解决方法系列,今天我们将看到需要做些什么才能将MySQL PK自动增量列与ADF实体PK属性一起使用. 如果我们使用的是Oracle数据库,则可 ...

  6. adf 自动输稿器_在ADF实体PK属性中使用MySQL自动增量PK列

    adf 自动输稿器 大家好. 继续进行ADF + MySQL解决方法系列,今天我们将看到需要做些什么才能将MySQL PK自动增量列与ADF实体PK属性一起使用. 如果使用的是Oracle数据库,则可 ...

  7. ADF Faces。 立即的自定义客户端事件

    在本文中,我将重点介绍ADF Faces Javascript API方法以从客户端触发自定义事件. 例如: function cliListener(actionEvent) {AdfCustomE ...

  8. 在ADF实体PK属性中使用MySQL自动增量PK列

    大家好. 继续进行ADF + MySQL解决方法系列,今天我们将看到要使用MySQL PK自动增量列和ADF实体PK属性来进行的工作. 如果使用的是Oracle数据库,则可以使用oracle.jbo. ...

  9. adf可以自定义溶剂吗_ADF Faces。 立即的自定义客户端事件

    adf可以自定义溶剂吗 在本文中,我将重点介绍ADF Faces Javascript API方法以从客户端触发自定义事件. 例如: function cliListener(actionEvent) ...

最新文章

  1. php文本分割成csv,怎么在php中将文本文件转换为csv文件并输出
  2. python3 装饰器_python3装饰器
  3. html 字体图标转换工具,字体图标的制作方式
  4. 如何查看MFC源码(转)
  5. php处理har,harviewer har解析工具
  6. 西门子step7 c语言开发,关于西门子STEP7 V5.5中文编程软件
  7. linux面试命令问题,面试常见的Linux命令及问题整理
  8. 工具学习——介绍几个C++项目可用的UML工具
  9. viper12a电源电路图_基于VIPER12A芯片设计的开关电源
  10. 计算机进制转换列表,计算机进制转换汇总
  11. Scala基础:类和构造器
  12. 青果教务系统php源码,使用PHP 的 curl 爬取 青果教務系統 課表
  13. V-rep 仿真与python远程控制
  14. 【NOI2015】BZOJ4199品酒大会题解(SAM+树形DP)
  15. 俺是东北人,俺骄傲!
  16. 智云通CRM:如何给客户创造尽可能安全的成交环境?
  17. 游戏感:虚拟感觉的游戏设计师指南——第十五章 超级马里奥64
  18. Android 增量更新实战
  19. 房屋买卖不可抗力包括哪些
  20. 自然辨证法推荐书目--100本,够看好几个学期了

热门文章

  1. 君威u0073故障码解决_顽疾修复过程,君威没倒挡的变速箱故障就是这样修好
  2. 计算机二级c语言考试模拟试题,计算机二级C语言考前模拟试题及答案2016
  3. ue4 运行禁用鼠标_[UE4] VS code使用LuaPanda断点调试
  4. 算法设计与分析:(二)动态规划
  5. kafka grpc_模型服务:流处理与使用Java,gRPC,Apache Kafka,TensorFlow的RPC / REST
  6. cli parser_Java命令行界面(第27部分):cli-parser
  7. maven 父maven_Maven神秘化
  8. java开发课程表_展示Java开发人员课程包
  9. drill apache_Apache Drill 1.4性能增强的简要概述
  10. 带有PostgreSQL的Docker Compose for Spring Boot应用程序