9

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

要求是,根据用户点击的行,需要显示对应List<B>的。A但是,<ui:repeat>不接受要在var属性中分配的嵌套列表。因此,我需要做很多没有效率的变通办法。

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

4

1 回答 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 中的详细信息未在嵌套 ui:repeat 中调用,并且在许多不那么最近的问题及其答案中),其中可能导致未调用动作侦听器等,但如果您当前使用的是最新的 Mojarra JSF 实现 - 完全跳过这部分。

于 2013-03-31T06:03:13.953 回答