gpt4 book ai didi

java - 在 JSF 2.0 中检索其他组件的客户端 ID

转载 作者:太空狗 更新时间:2023-10-29 22:32:32 25 4
gpt4 key购买 nike

JSF 2.0 是否有用于查找另一个组件的客户端 ID 的内置方法? SO 上有大约一千个与客户端 ID 相关的问题,并且有很多 hackish 方法可以做到这一点,但我想知道 JSF 2.0 是否带来了一个我不知道的更简单的方法。

#{component.clientId} 评估给定组件自己的客户端 ID,但我想引用另一个组件的 ID。

This博客文章提到 component.clientId,它还说 #{someComponent.clientId} 有效,但据我所知它没有。我相信他在 JSF 2.0 的任何引用实现发布之前就写了这篇文章,所以他只是根据 JSR 进行,而且功能可能发生了变化。我不确定。

我知道 PrimeFaces 和 RichFaces 都有自己的函数来返回客户端 ID,但我只是想知道是否有用于此的内置 JSF 2.0 方法。以下是一些示例:

这用于返回输出文本的 ID。

`<h:outputText value="My client ID : #{component.clientId}" />`

根据上面的博文,这应该有效,但实际上没有。我只是没有输出。

`<h:button id="sampleButton" value="Sample" />`

`<h:outputText value="sampleButton's client ID : #{sampleButton.clientId}" />`

这在 PrimeFaces 中有效:

`<h:outputText value="PrimeFaces : sampleButton's client ID : #{p:component('sampleButton')}" />` 

在 RichFaces 中工作:

`<h:outputText value="RichFaces : sampleButton's client ID : #{rich:clientId('sampleButton')}" />`

此外,如果可能的话,我正在寻找在我更改 javax.faces.SEPARATOR_CHAR 值或在引用组件之外添加/删除容器时不会中断的解决方案。我花了很多时间来追踪由硬编码 ID 路径引起的问题。

最佳答案

您需要通过binding 属性为组件分配一个 View 范围内的变量名。

<h:button id="sampleButton" binding="#{sampleButton}" value="Sample" />
<h:outputText value="sampleButton's client ID : #{sampleButton.clientId}" />

关于java - 在 JSF 2.0 中检索其他组件的客户端 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124727/

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