如何在 jsf 数据表中创建动态 p:menuButton?

How to create a dynamic p:menuButton inside a jsf dataTable?

我有一个 p:menuButton 一个 p:column 一个 p:dataTable。

到目前为止一切正常。

现在我想使 menuButton 动态化。但是 c:foreach 在渲染 table 之前被评估,并且 primefaces 不喜欢在 p:menuButton.

中使用 ui:repeat

如何根据要循环的行项目上的集合动态创建多个 p:menuitem,即我应该怎么做而不是下面示例中的 ?:someKindOfLoop?

<p:dataTable value='#{something.collection}' var='item'>
...
    <p:column>
    ...
        <p:menuButton value="Actions">
            <p:menuitem value="View ..."
              ...>
                <f:param name="something" value="#{item.id}"/>
            </p:menuitem>
            <?:someKindOfLoop x="#{item.subCollection}" y="var">
                <p:menuitem value="View sub list "
                  ...>
                    <f:param name="#{var.name}" value="#{var.id}"/>
                </p:menuitem>
            </?:someKindOfLoop>

        </p:menuButton>
    ...
    </p:column>
</p:dataTable>

谷歌搜索产生了许多类似的情况,但我还没有找到一个不是关于动态创建列(像这样:)或者不处理 primefaces 的。

PrimeFaces p:menuButton 与许多其他组件(包括大多数菜单组件)一样,支持模型属性。 page 329 in the PF6 documentation. The 'Dynamic menus` section of this component refers to the 'common' dynamic menus section on page 323 中提到了这一点。在那里你可以阅读如何做到这一点。

并且为了防止这个答案成为 'link only'(对于外部网站,这里是这个问题的一种重复:Primefaces : how to create <p:menubar> dynamically in primefaces 4?