【发布时间】:2011-02-05 02:21:35
【问题描述】:
环境:Seam,Richfaces
以下代码 sn-p 导致方法 getUsers 被多次调用,我如何在我的应用程序中避免这种情况,以便它只被调用一次。
<c:forEach items="#{userHome.getUsers()}" var="_user">
</c:forEach>
【问题讨论】:
标签: jsp jsf seam richfaces jstl
环境:Seam,Richfaces
以下代码 sn-p 导致方法 getUsers 被多次调用,我如何在我的应用程序中避免这种情况,以便它只被调用一次。
<c:forEach items="#{userHome.getUsers()}" var="_user">
</c:forEach>
【问题讨论】:
标签: jsp jsf seam richfaces jstl
看在上帝的份上,如果您关心性能避免使用 EntityHome/Query 框架。只需在您的getResultList() 上放置一个断点或输出,然后查看它被调用了多少次。现在用普通的接缝组件尝试同样的想法。你会看到一个显着的变化(!)
【讨论】:
经验法则是在使用 JSF 时避免使用 <c: 标记(除非您确定它们按预期工作)
这里最好换成:
<a4j:repeat value="#{userHome.users}" var ="_user">
</a4j:repeat>
(或 <ui:repeat>,如果使用 facelets)
附:我猜getUsers() 是 JBoss 的 EL 扩展,但我建议除非真的需要,否则不要使用它的扩展功能。
【讨论】: