2

在我的复合组件中,我有一个 ui:repeat,除了其他静态内容外,它还有一个命令按钮,如下所示:

<ui:repeat var="article" value="#{cc.attrs.articleList}">
     <strong>文章:#{article}</strong>
     <h:commandButton id="addToFavs" value="Subscribe" binding="..." type="..." >
         <f:setPropertyActionListener value="#{article}" target="..." />
     </h:commandButton >
 </ui:repeat>

现在,我想在复合接口中公开这个事件,以便在我的页面中,我可以附加事件侦听器并绑定 f:ajax。

如果它在 ui:repeat 之外(即只有一个这样的按钮),那将非常容易,如下所示:

<复合:接口>
  <composite:actionSource name="addToFavs" 目标="#{cc.clientId}:addToFavs" />
  <composite:clientBehavior name="ajax" default="true"
                              event="action" 目标="#{cc.clientId}:addToFavs"/>
</composite:interface>

但在这种情况下失败了,因为该 ID ( addToFavs )没有一个组件,而是一堆组件。你知道我应该如何在界面中暴露这些按钮吗?

问候,

普拉季姆纳

4

1 回答 1

2

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

不,我做不到。看来我们做不到。我们只能公开其与复合组件相关的 ID 为组件作者先验已知的组件。

于 2010-06-23T12:01:08.380 回答