c:forEach.items被重复调用

时间:2010-04-07 03:28:43

标签: jsp jsf seam richfaces jstl

环境:Seam,Richfaces

以下代码片段会导致方法getUsers被多次调用,如何在我的应用程序中避免这种情况,以便只调用一次。

<c:forEach items="#{userHome.getUsers()}" var="_user">
</c:forEach>

2 个答案:

答案 0 :(得分:4)

经验法则是在使用JSF时避免<c:标记(除非您确定它们按预期工作)

在这里,您最好将其重新命名为:

<a4j:repeat value="#{userHome.users}" var ="_user">
</a4j:repeat>

(如果使用facelets,则为<ui:repeat>

P.S。我想getUsers()是JBoss的EL扩展,但我建议不要使用它的扩展功能,除非确实需要。

答案 1 :(得分:2)

对于上帝的爱,如果你关心使用EntityHome / Query框架的 避免 。只需在getResultList()上放置一个断点或输出,看看它被调用了多少次。现在尝试使用普通的接缝组件。你会看到一个重大的变化(!)