替换c:foreach on ui:repeat

时间:2013-07-02 13:37:09

标签: java jsf jsf-2 uirepeat

我使用JSF2和primefaces。我有这段代码

<c:forEach begin="1" end="5" var="i">
    <h:outputLabel value="#{i} #{msg.set}:"/>
</c:forEach>

是否可以替换为ui:repeat而不创建范围为1到5的列表项?

2 个答案:

答案 0 :(得分:2)

您可以使用spel

构建内联列表

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/expressions.html

<ui:repeat var="i" value="#{1,2,3,4,5}">
    <h:outputLabel value="#{i} #{msg.set}:"/>
</ui:repeat>

但如果你需要数百个,可能会很笨拙。

我认为你必须创建一种更灵活的支持bean。

它可以作为一个单独的实用程序bean,有一个方法返回一个整数List我想帮助你所以你可以调用

<ui:repeat var="i" value="#{util.generate(1,5)}">
    <h:outputLabel value="#{i} #{msg.set}:"/>
</ui:repeat>

答案 1 :(得分:1)

没有。 ui:repeat标记不是一般的迭代标记,但仅适用于集合。

您必须使用forEach,或围绕此进行设计。