在我的复合组件中,我有一个ui:repeat,除了其他静态之外,还有一个命令按钮,如下所示:
<ui:repeat var="article" value="#{cc.attrs.articleList}"> <strong>Aricle: #{article}</strong> <h:commandButton id="addToFavs" value="Subscribe" binding="..." type="..." > <f:setPropertyActionListener value="#{article}" target="..." /> </h:commandButton > </ui:repeat>
现在,我想在复合界面中公开这个事件,这样在我的页面中,我可以附加事件监听器并绑定f:ajax。
如果它不在ui之外:重复(即,只存在一个这样的按钮),这很容易,就像这样:
<composite:interface> <composite:actionSource name="addToFavs" targets="#{cc.clientId}:addToFavs" /> <composite:clientBehavior name="ajax" default="true" event="action" targets="#{cc.clientId}:addToFavs"/> </composite:interface>
但是在这种情况下失败了,因为该ID没有一个组件( addToFavs ),而是一堆组件。你知道我应该如何在界面中公开这些按钮吗?
此致
Pradyumna
答案 0 :(得分:2)
用我最好的猜测更新这篇文章,以防万一有人想知道我能否实现它:
不,我不能这样做。看起来我们做不到。我们只能公开组件作者apriori知道其相对于复合组件的ID的组件。