Tomahawk データテーブルを含むページがあります。その「値」タグで、EJB からリストを取得するメソッドを呼び出します。リストが空になった場合は、ページにメッセージを表示する必要があります。ロジックは機能し、画面にメッセージを表示するために作成したメソッドを実行しますが、ページにメッセージをレンダリングしません。これは JSF のライフサイクルと関係があるのではないかと心配しています。この場合、私にできる回避策はありますか?
前もって感謝します。
Tomahawk データテーブルを含むページがあります。その「値」タグで、EJB からリストを取得するメソッドを呼び出します。リストが空になった場合は、ページにメッセージを表示する必要があります。ロジックは機能し、画面にメッセージを表示するために作成したメソッドを実行しますが、ページにメッセージをレンダリングしません。これは JSF のライフサイクルと関係があるのではないかと心配しています。この場合、私にできる回避策はありますか?
前もって感謝します。
通常のアプローチは、rendered
属性を利用することです。
<h:outputText value="List is empty" rendered="#{empty bean.list}" />
<t:dataTable value="#{bean.list}" rendered="#{not empty bean.list}">
...
</t:dataTable>
empty
EL キーワードは、が空またはのtrue
場合に評価されます。bean.list
null
とはいえ、getter で EJB ロジックを実行するのはかなり悪い考えです。ゲッターはデータを返すためだけに存在し、Bean の存続期間中に複数回呼び出すことができます。@PostConstruct
むしろ、Bean のメソッドで EJB を行います。