0

Tomahawk データテーブルを含むページがあります。その「値」タグで、EJB からリストを取得するメソッドを呼び出します。リストが空になった場合は、ページにメッセージを表示する必要があります。ロジックは機能し、画面にメッセージを表示するために作成したメソッドを実行しますが、ページにメッセージをレンダリングしません。これは JSF のライフサイクルと関係があるのではないかと心配しています。この場合、私にできる回避策はありますか?

前もって感謝します。

4

1 に答える 1

1

通常のアプローチは、rendered属性を利用することです。

<h:outputText value="List is empty" rendered="#{empty bean.list}" />
<t:dataTable value="#{bean.list}" rendered="#{not empty bean.list}">
    ...
</t:dataTable>

emptyEL キーワードは、が空またはのtrue場合に評価されます。bean.listnull

とはいえ、getter で EJB ロジックを実行するのはかなり悪い考えです。ゲッターはデータを返すためだけに存在し、Bean の存続期間中に複数回呼び出すことができます。@PostConstructむしろ、Bean のメソッドで EJB を行います。

于 2010-11-03T12:42:55.823 に答える