RichFaces 3.3.3(大企業プロジェクト - まだ更新するオプションなし)でJSF 1.2を使用していますが、<a4j:support>
タグでいくつかのフィールドを再レンダリングする際に問題があります。 私はテーブルと、バッキングBeanで計算された値を表示するサマリー行を持っています。要約行のセルは、他の行が変更されるたびに自動的に更新されるはずです。更新をトリガーするすべてのセルで、valueChangeListener
があります。これは、Beanの "再計算"メソッドを呼びます。<a4j:support reRender="[corresponding_summary_cell]" (...) />
問題は、テーブルがあるページでは、レンダリングが機能しません。 Ajaxリクエストが呼び出されますが、何らかの「空の」応答が返されます。たとえば、ページへのリンクをクリックしてビューをリロードした場合にのみ、リクエストは意図したとおりに動作し、対応するサマリーセルを正しく更新します。RichFaces <a4j:support>最初の試行で再レンダリングしません
品種の空応答内容フラグメント:
<body>
<meta name="Ajax-Update-Ids" content="" /><span id="ajax-view-state">
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id11" autocomplete="off" /></span>
<meta id="Ajax-Response" name="Ajax-Response" content="true" />
<meta name="Ajax-Update-Ids" content="" />
<span id="ajax-view-state">
<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id11" autocomplete="off" />
</span>
<meta id="Ajax-Response" name="Ajax-Response" content="true" />
</body>
計算例をトリガ細胞:
<customNamespace:moneyValue value="#{someAttribute}" id="field1" valueChangeListener="#{controller.calculateSums}">
<a4j:support event="onchange" reRender="Form-Table-Cost1Sum"/>
</customNamespace:moneyValue>
テーブル内の行をdybnamically追加されるが、最初の行(空のテーブルに最初の行が追加されている)だけで問題が発生し、次の行は正常に動作します。私はまた、フォーム全体を再描画しようとしました - 何も変わっていません。
TL
; DR: は、別の行を、AJAX更新すべきでテーブルセルは、再レンダリング属性が空だったように、最初の時間応答を与えるだけリロード後に動作しました。