<ui:param> facelet标签性能</ui:param>

时间:2011-06-21 06:09:51

标签: performance jsf richfaces seam facelets

我有一个要显示大量内容的文件。例如,在显示用户配置文件时,<h:outputText/>中的每个EL表达式都需要userId作为bean的参数,该参数取自会话上下文。我在xhtml文件中将此userId声明为

<ui:param name="userId" value="#{currentUser.id}"/>

我将此userId作为

传递给bean方法
<h:outputText value="#{profile.getAddress(userId)}"/>
<h:outputText value="#{profile.getContact(userId)}"/>

<s:link>
<f:param name="userId" value="#{userId}"/>
</s:link>

我预测会话变量会为一个页面调用一次。但是每次处理userId时都会调用sessiion变量。这是正确的行为吗?如何优化这个?

1 个答案:

答案 0 :(得分:1)

是的,这是正确的行为。看看哪个更快会很有趣。我猜想在您的配置文件组件中注入currentUser会更快,然后从那里检索正确的对象,而不是每次都获取userId的地址和联系人。 (取决于您是否将其缓存在组件中)。

但是,我会尝试通过在配置文件组件中注入currentUser来优化它。这是做到这一点的标准方式。