2011-06-21 20 views
4

大きなコンテンツを表示するファイルがあります。たとえば、ユーザプロファイルを表示する場合、<h:outputText/>のすべてのEL式は、セッションコンテキストから取得されたbeanの引数としてuserIdを必要とします。私は私がページに対して一度呼び出されるセッション変数をexpectiongい<ui:param> faceletタグのパフォーマンス

<h:outputText value="#{profile.getAddress(userId)}"/> 
<h:outputText value="#{profile.getContact(userId)}"/> 

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

としてBeanメソッドにこのuserIdをを渡しています

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

としてXHTMLファイルでこのuserIdを宣言しました。しかし、userIdが処理されるたびに、sessiion変数が呼び出されます。これは正しい動作ですか?これを最適化する方法は?

+0

私は同じ問題があります。 ' mist

答えて

1

はいこれは正しい動作です。どの方が速いのが見えるのは面白いでしょう。私は、あなたのプロフィールコンポーネントにcurrentUserを注入してから、その都度userIdによってアドレスと連絡先を取得するのではなく、そこから正しいオブジェクトを取得する方が速いと思います。 (それをコンポーネントにキャッシュするかどうかによって異なります)。

しかし、プロファイルコンポーネントにcurrentUserを注入して最適化しようとします。これが標準的なやり方です。