gpt4 book ai didi

xpages - 表达式语言等效于 getComponent()

转载 作者:行者123 更新时间:2023-12-01 07:56:48 24 4
gpt4 key购买 nike

我只能在 java 中的等价物的任何地方找到它,但有谁知道 getComponent("name").value 的 EL 等价物是什么?

最佳答案

这是组件绑定(bind)到的任何内容......所以如果您的页面包括:

<xp:inputText value="#{currentDocument.subject}" />

...那么这将显示相​​同的结果:
<xp:text value="#{currentDocument.subject}" />

您还可以使用任何标准 EL 运算符来引用该值;例如。:
<xp:label rendered="#{not(empty(currentDocument.subject))}" ...>
<xp:comboBox rendered="#{currentDocument.totalAmount gt 1000}" ...>
<xp:panel rendered="#{currentDocument.optIn eq 'Yes'}" ...>

并且 EL 还支持“关联数组”语法,这在需要引用动态命名属性或在自定义控件外部可编辑但需要在自定义控件内部引用它们的属性时非常方便。例如,如果您定义 dataSourcepropertyName作为自定义控件的自定义属性,您可以从“知道”它们是什么的上下文中传入它们:
<xc:dynamicLabel dataSource="currentDocument" propertyName="subject" />

...然后在该自定义控件中引用它们:
<xp:label text="#{compositeData.dataSource[compositeData.propertyName]}" />

当然,所有这些都适用于 XPages 引擎知道如何通过 EL 引用的任何类型:
  • SSJS 对象
  • Java Maps(即范围变量)
  • DataObject 的实例(标准 Domino 文档数据源、自定义实现等)
  • 任何有效的 Java bean(遵守 bean conventions )

  • 准确地说,当 EL 被解释时,变量解析器检查它是否是前三个之一,如果是,则以特定于该类型的方式评估任何属性。如果它不是前三个之一,它假定它是一个 bean。

    总而言之,任何给定的组件都不“知道”它自己的值(value)。如果您以编程方式获取组件的句柄并调用它的 getValue方法,该方法检查其值是否为值绑定(bind)(EL、SSJS 等)。如果是,则计算该表达式并返回结果。因此,如果您在其他地方需要相同的结果,只需在备用位置也使用相同的表达式,因为它将返回相同的结果......只是不要绑定(bind) value同一表达式的多个可编辑组件的属性;这可能会产生不可预知的结果。

    关于xpages - 表达式语言等效于 getComponent(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22834899/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com