1

私のjsfページにカスタムjavascript Ajax呼び出しがあります。XMLHttpRequest のクエリ文字列をフィルターでキャプチャして処理します。フィルターは、モデル内のテーブルにレコードを追加します。ここで、ページ全体を更新せずに jsf ページに、更新されたモデルをコンポーネントの 1 つ (Primefaces データ テーブル) に反映させたいと考えています。

必要なのはカスタム xmlHttpResponse だと思います...

誰でもこれを行う方法を教えてもらえますか? 複雑かもしれないと怖いのですが、カスタムJavaScriptを使用するしかありません...

4

1 に答える 1

5

PrimeFaces<p:remoteCommand>は、この目的のために設計されています。

特定のケースの基本的なキックオフの例を次に示します。

<h:form>
    <p:remoteCommand name="updateTable" action="#{bean.updateTable}" 
        process="@this" update="table" />
    ...
    <p:dataTable id="table">...</p:dataTable>
</h:form>

updateTable()メソッドを呼び出し、#{bean.updateTable}(相対) クライアント ID でコンポーネントを更新する JS 関数を生成しますtableupdateTable()JavaScript コンテキストで関数を呼び出すだけです。

updateTable();

必要に応じてリクエスト パラメータを渡すこともできます。これは JS オブジェクトとして送信する必要があります。

updateTable({ name1: "value1", name2: "value2 });

自作の ajax リクエストをいじったり、JSF の状態を同期させたりする必要はありません。

于 2012-12-16T22:31:48.260 に答える