0

JSF 2.1 アプリケーションではdataTable、ログインしたユーザーに属するデータベース レコードのみを表示する JSF を (PrimeFaces を使用して) 構築する必要があります。

valueしたがって、dataTable の属性に関連付けられた Bean にユーザー名を渡す必要があります。

value="#{tableBuilder.records}"

テーブル Bean は次のとおりです。

@ManagedBean
@ViewScoped
public class TableBuilder {
    private List<MyRecord> records;
    private String username;
    // getters and setters
}

アプリケーションが単一の Web ページで構成されLoginBean、SessionScoped ManagedBean を介してコンテナー管理認証が実装されていることを知っておくと便利です。これは、ユーザーがログインしたときに TableBuilder に通知する追加の作業を意味します。

私が考えている唯一の方法は、をスルーアノテーションに挿入しLoginBeanTableBuilderLoginBean@ManagedPropertygetRecordsユーザー名プロパティが変更されたかどうかのすべてのリクエストをチェックすることです。

多分もっと良い方法がありますか?

4

1 に答える 1

1

お使いの環境が EL 2.2 をサポートしている場合 (質問履歴で Java EE 6 が確認されています)、「そのまま実行してください」:

<h:dataTable value="#{bean.getModel(user)}">

public List<Item> getModel(User user) {
    // ...
}

それが正しい方法であるか、より良い方法があるかに関係なく、途中で終了します。ゲッターは、EL が値式を評価する回数だけ呼び出されることに注意してください。

于 2012-10-14T17:17:41.713 に答える