c:forEach.items 被重复调用

问题描述 投票:0回答:2

环境:Seam、Richfaces

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

<c:forEach items="#{userHome.getUsers()}" var="_user">
</c:forEach>
jsp jsf seam richfaces jstl
2个回答
4
投票

经验法则是在使用 JSF 时避免使用

<c:
标签(除非您确定它们按预期工作)

这里你最好替换成:

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

(或

<ui:repeat>
,如果使用 Facelets)

PS:我猜

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


2
投票

看在上帝的份上,如果您关心性能避免使用 EntityHome/Query 框架。只需在您的

getResultList()
上放置一个断点或输出,然后查看它被调用了多少次。现在尝试使用普通接缝组件进行相同的思考。你会看到显着的变化(!)

© www.soinside.com 2019 - 2024. All rights reserved.