小编cut*_*hin的帖子

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

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

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

这个博客文章提到component.clientId,它也说#{someComponent.clientId}有效,但从我可以告诉它没有.我相信他在JSF 2.0的任何参考实现出来之前都写过,所以他只是去了JSR,也许这个功能发生了变化.我不确定.

我知道PrimeFaces和RichFaces都有自己的函数来返回客户端ID,但我只是想知道是否有内置的JSF 2.0方法.这里有些例子:

这可以返回outputText的ID.

`<h:outputText value="My client ID : #{component.clientId}" />`
Run Code Online (Sandbox Code Playgroud)

根据上面的博客文章,这应该有效,但事实并非如此.我没有输出.

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

`<h:outputText value="sampleButton's client ID : #{sampleButton.clientId}" />`
Run Code Online (Sandbox Code Playgroud)

这适用于PrimeFaces:

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

在RichFaces中工作:

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

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

java jsf richfaces clientid primefaces

18
推荐指数
1
解决办法
2万
查看次数

标签 统计

clientid ×1

java ×1

jsf ×1

primefaces ×1

richfaces ×1