0

我定义了一个自定义组件并尝试使用如下绑定:

<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;" />

这个组件没有出现,我也找不到这个按钮对应的代码。

有人知道修复吗?

4

1 回答 1

1

是的,它被多次使用

这就是原因。binding应该引用组件的唯一引用。现在,您在物理上拥有多个引用同一个引用的组件。

我不确定具体的功能要求是什么,但是当您已经在 J​​avaScript 上下文中时,这种方法通常是不必要的。然后也可以按如下方式解决特定示例:

<h:commandButton id="t1" value="test!" onclick="alert('I am ' + id); return false;" />

生成的 HTML 元素本身的 ID 即与 JSF 组件客户端 ID 完全相同。

于 2012-06-08T18:14:57.707 回答