我定义了一个自定义组件,并尝试使用绑定如下:
<ui:composition ...>
<div>
<f:subview>
<a4j:outputPanel>
<h:commandButton id="t1" value="test!" />
...
</a4j:outputPanel>
</f:subview>
</div>
</ui:composition>
此组件正常工作,直到我添加了这样的绑定属性:
<h:commandButton id="t1" binding="#{foo}" value="test!" onclick="alert('I am #{id:cid(foo)}'); return false;" />
此组件未显示,我无法找到此按钮的相应代码段。
任何人都知道修复?
答案 0 :(得分:1)
是的,它被多次使用
原因在于此。 binding
应引用该组件的唯一引用。现在,您实际上有多个组件引用同一个参考。
我不确定具体的功能要求是什么,但是当你已经进入JavaScript上下文时,通常不需要这种方法。然后,特定的例子也可以如下解决:
<h:commandButton id="t1" value="test!" onclick="alert('I am ' + id); return false;" />
生成的HTML元素本身的ID与JSF组件客户端ID完全相同。