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

时间:2013-03-31 05:20:37

标签: jsf jsf-2 nested-lists uirepeat

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

要求是,根据用户点击的行,需要显示相应List<B>的{​​{1}}。但是,A不接受在<ui:repeat>属性中分配的嵌套列表。因此,我需要做很多无效的解决方法。

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

1 个答案:

答案 0 :(得分:15)

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

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

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