2

ASP.NET から来て、基本的な ADF の概念に苦労しています。

ボタンのクリックでテーブルをバインドする必要がありますが、何らかの理由で理解できません (ASP.NET とは異なると思われるページのライフサイクルに傾倒しています)。

これは私のADFコードです:

<af:commandButton text="#{viewcontrollerBundle.CMD_SEARCH}"
    id="cmdSearch"
    action="#{backingBeanScope.indexBean.cmdSearch_click}"
    partialSubmit="true"/>

<af:table var="row" rowBandingInterval="0" id="t1"
                    value="#{backingBeanScope.indexBean.transactionList}"
                    partialTriggers="::cmdSearch"
                    binding="#{backingBeanScope.indexBean.table}">
            <af:column sortable="false" headerText="idTransaction" id="c2">
              <af:outputText value="#{row.idTransaction}" id="ot4"/>
            </af:column>
            <af:column sortable="false" headerText="referenceCode" id="c5">
              <af:outputText value="#{row.referenceCode}" id="ot7"/>
            </af:column>
          </af:table>

これは cmdSearch_click です:

public String cmdSearch_click() {
    List l = new ArrayList();
    Transaction t = new Transaction();
    t.setIdTransaction(BigDecimal.valueOf(1));
    t.setReferenceCode("AAA");
    l.add(t);

    t = new Transaction();
    t.setIdTransaction(BigDecimal.valueOf(2));
    t.setReferenceCode("BBB");
    l.add(t);

    setTransactionList(l);

    // AdfFacesContext.getCurrentInstance().addPartialTarget(table);

    return null;
 }

コメント行も機能しません。

Bean のコンストラクターにリストを入力すると、テーブルは正常にレンダリングされます。

何か案は?

4

3 に答える 3

2

範囲の問題でした。

この投稿を読んだ後、それを行う正しい方法はviewScopeに設定することだと思います

これが間違っていると思われる方がいらっしゃいましたら、お知らせください。今のところこれが私の答えです。

于 2010-05-03T16:07:47.883 に答える
0

バッキングBeanスコープが適切なスコープであるかどうかはわかりません。pageFlowScopeまたはSessionスコープのいずれかをお勧めします。これらは、モデル化したいものに最も密接にマッピングされます。

PageFlowScopeはユーザーがクリックしているものに従うため、同じWebアプリ/同じユーザーの2つのインスタンスは異なるPageFlowスコープを持ちます。

セッションスコープは、同じユーザーによるWebアプリのすべてのインスタンスに共通です。

アプリケーションの範囲はすべてのユーザーに共通です。私はほとんどいつもこれを避けます。

リクエストスコープは、ビューリクエスト間でのみ持続します。非常に短い期間のデータを除いて、実際には役に立ちません。

于 2010-05-15T05:49:53.050 に答える
0

sessionScope に設定しないでください。その後、ユーザー セッションがアクティブになるまで有効です。pageFlowScope (これはページの存続期間中有効です) またはクライアントによってリクエストが作成されてからレスポンスを受信するまで有効な requestScope のいずれかを使用することをお勧めします。

于 2012-12-16T12:06:02.363 に答える