JSF 2 composite:actionSource在ui:repeat中暴露commandButtons

时间:2010-06-19 13:14:00

标签: java ajax jsf jsf-2 composite-component

在我的复合组件中,我有一个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

1 个答案:

答案 0 :(得分:2)

用我最好的猜测更新这篇文章,以防万一有人想知道我能否实现它:

不,我不能这样做。看起来我们做不到。我们只能公开组件作者apriori知道其相对于复合组件的ID的组件。