0

セッション ファサードで、カスタム エンティティ コレクションを返すメソッドを作成します。ローカル インターフェイスで公開します。対応するデータ コントロール イテレータを ADF テーブルにバインドします。実行すると、「表示するデータがありません」と表示されます。weblogic コンソールには例外はありません。

public List<Users> getCollection() {
    List<Users> l = new ArrayList<Users>();
    Users u = em.find(Users.class, new BigDecimal(999));
    System.out.println(u.getName());
    l.add(u);
    return l;
}

ADFボタンにバインドされた別のメソッドを介してこのメ​​ソッドを呼び出すと、すべて問題ありません。ユーザー名が weblogic コンソールに出力されます。

public int printCollectionSize() {
    return getCollection().size();
}

(自動生成された) メソッド getUsersFindAll から作成されたデータ コントロール イテレータを ADF テーブルにバインドすると、すべて問題ありません。

public List<Users> getUsersFindAll() {
    return em.createNamedQuery("Users.findAll").getResultList();
}

私は完全に迷っています。メソッドがデータ バインディング システムによって実行されることはありませんか? それの何が問題なのですか?

4

1 に答える 1

0

ADF では、JSP ページ内のすべてのコードとバインディングは、ADF が JSP とバッキング Bean の間をリンクするコードの自動生成を開始するときに使用される単なるプロパティ値です。そのため、何よりもまず (私は専門家ではありませんが)、ADF コンポーネントを任意のコレクションに簡単にバインドできるかどうかはわかりません。

最初に行う最善の方法は、コレクションが初期化されていることを確認するメソッドを早い段階で直接呼び出す方法を見つけてから、テーブルを更新することです。PPR の異常を心配する必要がないように、完全に更新されたコマンド ボタンを使用することもできます。

于 2011-10-07T18:39:06.297 に答える