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

9
使用JSF2.0,我需要显示一个包含每行链接打开弹出窗口的表格。 我有两个模型:A具有idList<B>属性,B具有idname属性。 在我的后台bean中,我有一个List<A>属性。 在我的视图中,我使用<ui:repeat>来迭代List<A>。 要求是,根据用户单击的行,需要显示相应的AList<B>。 然而,<ui:repeat>不接受嵌套列表在var属性中分配。 因此,我需要做很多变通方法,这并不高效。 如何有效地解决这个问题?

展示一下你尝试过的内容! - skuntsel
1个回答

16

你需要在外部迭代中嵌套另一个<ui:repeat>标签:

<ui:repeat value="#{bean.listOfA}" var="a">
    ...
    <ui:repeat value="#{a.listOfB}" var="b">
        ...
    </ui:repeat>
</ui:repeat>

需要注意的是,嵌套使用<ui:repeat>标签在Mojarra 2.1.15版本之前可能会存在状态管理问题(详见jsf listener not called inside nested ui:repeat及其他较早提出的问题和回答),这可能导致动作监听器无法调用等问题。但是,如果您当前正在使用最新的Mojarra JSF实现,则可以完全跳过此部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接