如何使用<ui:repeat>迭代嵌套列表?

use*_*591 8 jsf nested-lists jsf-2 uirepeat

使用JSF 2.0,我需要显示一个表,其中每行包含一个打开弹出窗口的链接.我有两个模型:A具有idList<B>属性B,具有idname属性.在我的支持bean中,我有一个List<A>属性.在我看来,我正在使用<ui:repeat>迭代List<A>.

的要求是,这取决于用户点击,则对应的行List<B>A需要被显示出来.但是,<ui:repeat>不接受在var属性中分配的嵌套列表.因此,我需要做很多无效的解决方法.

我该如何有效地解决这个问题?

sku*_*sel 15

您需要的是<ui:repeat>在外部迭代中嵌套另一个标记:

<ui:repeat value="#{bean.listOfA}" var="a">
    ...
    <ui:repeat value="#{a.listOfB}" var="b">
        ...
    </ui:repeat>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)

唯一值得注意的是,嵌套<ui:repeat>标签曾经存在状态管理问题,直到Mojarra 2.1.15版本(jsf监听器中的详细信息未在嵌套ui内部调用:重复和许多不是最近的问题及其答案),可能会导致动作侦听器未被调用等,但如果您目前正在使用最新的Mojarra JSF实现 - 只需完全跳过此部分.