环境:Seam、Richfaces
以下代码片段导致 getUsers 方法被多次调用,我如何在我的应用程序中避免这种情况,以便只调用一次。
<c:forEach items="#{userHome.getUsers()}" var="_user">
</c:forEach>
经验法则是在使用 JSF 时避免使用
<c:
标签(除非您确定它们按预期工作)
这里你最好替换成:
<a4j:repeat value="#{userHome.users}" var ="_user">
</a4j:repeat>
(或
<ui:repeat>
,如果使用 Facelets)
PS:我猜
getUsers()
是JBoss的EL扩展,但我建议除非确实需要,否则不要使用它的扩展功能。
看在上帝的份上,如果您关心性能避免使用 EntityHome/Query 框架。只需在您的
getResultList()
上放置一个断点或输出,然后查看它被调用了多少次。现在尝试使用普通接缝组件进行相同的思考。你会看到显着的变化(!)