使用JSF 2.0,我需要显示一个表,其中每行包含一个打开弹出窗口的链接。我有两个模型:A
具有id
和List<B>
属性,B
具有id
和name
属性。在我的支持bean中,我有一个List<A>
属性。在我看来,我使用<ui:repeat>
来迭代List<A>
。
要求是,根据用户点击的行,需要显示相应List<B>
的{{1}}。但是,A
不接受在<ui:repeat>
属性中分配的嵌套列表。因此,我需要做很多无效的解决方法。
如何有效地解决这个问题?
答案 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实现 - 只需完全跳过此部分。