0

JSF + Springでこの設計上の問題が発生しました:-

ユーザーの詳細を表示するロードするページにデータテーブルを取得しました。これはデータベースから取得されます。

したがって、私のjsfページには次のものがあります:

 <p:dataTable id="userTable" var="user" value="#{userBean.users}" rowKey="#{user.userID}"
                                     selection="#{userBean.selectedUser}" paginator="true" rows="10" >

マネージド Bean には次のものがあります。

private List<UserDetails> users; // getters and setters

ここで、管理対象 Bean は、DB からユーザーを取得するために、ヘルパー クラスのスプリング インジェクションが必要です。

@ManagedProperty(value="#{userBO}")
private UserBO userBO;

問題は、オブジェクトが完全にインスタンス化されたときにスプリング注入が発生することです。したがってuserBO.getUsersFromDataBase()、コンストラクターに my を配置して、それを my に割り当てることはできませんusers

managedBean でスプリング インジェクションを使用して、DB からユーザーをフェッチする方法がわかりません。Spring は、ヘルパー クラスを注入できるように ManagedBean のインスタンス化を完了する必要がありますが、ManagedBean が完全にインスタンス化されるずっと前に、jsf ページがデータベース値を要求します。ちょっと立ち往生:/

4

1 に答える 1

1

私はSpringに精通していませんが、標準のJSFでは、@PostConstruct構築後および依存性注入後に呼び出されるメソッドでアノテーションを使用できます。

@PostConstruct
public void init() {
    userBO.getUsersFromDataBase()
}
于 2012-04-05T13:27:23.793 に答える