<p:outputPanel>
<h:selectOneRadio value="#{myBean.favColor1}">
<f:selectItem itemValue="Red" itemLabel="Color1 - Red" />
<f:selectItem itemValue="Green" itemLabel="Color1 - Green" />
<f:selectItem itemValue="Blue" itemLabel="Color1 - Blue" />
</h:selectOneRadio>
<p:ajax update="picker,#{myBean.clientId}"/>
</p:outputPanel>
我需要更新以编程方式生成id的组件。
答案 0 :(得分:2)
客户端ID应该以默认命名容器分隔符:
作为前缀,以便它将被绝对解析为UIViewRoot
,而不是相对于父命名容器(这将适用于组件ID) ,但不适用于客户ID)。
<p:ajax update="picker,:#{myBean.clientId}"/>
作为一个完全不同的替代方案(我发现将客户端ID绑定到支持bean非常痒),只需将组件绑定到视图并引用它而不是通过中间托管bean。
<h:someComponent binding="#{foo}" />
...
<p:ajax update="picker,:#{foo.clientId}"/>