Jsf 2 无法在复合组件内使用p:OverlyPanel

Jsf 2 无法在复合组件内使用p:OverlyPanel,jsf-2,composite-component,Jsf 2,Composite Component,我正在尝试创建一个复合组件,将值显示为OverlyPanel。但它返回以下错误; 在视图中找不到组件“j_idt58:reviewDataTable:0:overrideCol” xhtml:(复合组件) #{cc.attrs.forValue} 它在另一页中使用: <h:form> .... ... <p:dataTable .....> .... <p:column sortBy="#{dto.isSameCycleOverride}" width=

我正在尝试创建一个复合组件,将值显示为OverlyPanel。但它返回以下错误; 在视图中找不到组件“j_idt58:reviewDataTable:0:overrideCol”

xhtml:(复合组件)


#{cc.attrs.forValue}
它在另一页中使用:

<h:form>
....
...
<p:dataTable .....>
....
    <p:column sortBy="#{dto.isSameCycleOverride}" width="100">
      <f:facet name="header">
          Override
      </f:facet>
      <h:commandLink id="overrideCol" binding="#{overrideCol}"
        value="#{(dto.isSameCycleOverride) ? 'Yes' : 'No'}" />
     <comp:overrideVersionDetails forId="#{overrideCol.clientId}"
     forValue="#{dto.message}" />
    </p:column>
....
</p:dataTable>
</h:form>

....
...
....
推翻
....

非常感谢您的帮助。

我不使用Primefaces,但使用RichFaces时,我会使用:

<comp:overrideVersionDetails forId="#{rich:clientId('overrideCol')}"
                             forValue="#{dto.message}" />

做你想做的事

在SO的帮助下: 看来你可以做到这一点:

...
 <h:commandLink id="overrideCol" value="#{(dto.isSameCycleOverride) ? 'Yes' : 'No'}" />
 <comp:overrideVersionDetails forId="#{p:component('overrideCol')}"
 forValue="#{dto.message}" />
...
。。。
...
现在看看这是否比在数据表中使用
绑定更好

...
 <h:commandLink id="overrideCol" value="#{(dto.isSameCycleOverride) ? 'Yes' : 'No'}" />
 <comp:overrideVersionDetails forId="#{p:component('overrideCol')}"
 forValue="#{dto.message}" />
...