<ui:repeat value="#{bean.allResults}" var="result">
<ui:fragment rendered="#{result.condition1}">
<ui:include src="/item1.xhtml">
</ui:fragment>
<ui:fragment rendered="#{result.condition2}">
<ui:include src="/item2.xhtml">
</ui:fragment>
<ui:fragment rendered="#{result.condition3}">
<ui:include src="/item3.xhtml">
</ui:fragment>
<ui:fragment rendered="#{result.condition4}">
<ui:include src="/item4.xhtml">
</ui:fragment>
</ui:repeat>
JSF / JSTL /Facelets
を使用する際のベストプラクティスに関していくつか質問があります。上記のコードのようなJSFページがあります。このループが10個の結果を返し、各結果に対して1つの条件のみがtrueに評価されると仮定します。したがって、ユーザーは、ロードされるとhtmlページに10件の結果が表示されます。
HTMLで表示されるアイテムは10個だけですが、コンポーネントツリーには40個のアイテムが含まれますが、falseと評価されたアイテムが含まれます。上記の動作は正確ですか?
1が真であり、コンポーネントツリーに多くの非表示のコンポーネントが含まれている可能性がある場合、パフォーマンスの問題は、40ではなく400のアイテムだったとしましょう。
FaceletesまたはJSFには、c:ifのように動作し、ツリーにコンポーネントを含めない条件付きタグハンドラーがありますか?または、最後の手段としてc:ifを使用する必要がありますか?JSTLの使用を避けようとしています。
ありがとう。