1

に隠されたjavax.faces.ViewStateを挿入して、Mojarraを禁止するにはどうすればよい<form>ですか?ページが最初に読み込まれたときに機能する検索<form method='GET'>があります(ビュースコープのBeanが正しく再初期化されるため)。しかし、ページ内のAJAXページ付け(PrimeFacesグリッド上)の後、Mojarra(またはPrimeFaces?)は非表示のjavax.faces.ViewStateをフォームに挿入します。これで、フォームを送信しても、javax.faces.ViewState入力が原因でビュースコープBeanが再起動しません。

ここでの問題は次のとおりです。検索Beanを初期化してユーザーに結果を表示したいのですが、ViewScopeパラメーターが渡されると、このBeanは初期化されず、関連ページも表示されません。前のページに残っているだけです。

4

1 に答える 1

2

それをしているのはMojarraではなく、それをしているのはPrimeFacesです。<h:commandButton>withを呼び出す<f:ajax>と、ボタンが元々存在していたフォームのビューステートのみが更新されることがわかります。

PrimeFacesの担当者に、ajaxの更新中に、を含む要素やを含まない要素に触れないようにする必要があるという問題を報告することをお勧めします。<form>method="get"<input type="hidden" name="formId" value="formId">

彼らがそれを修正するまで、あなたの最善の策は、プレーンなHTMLフォームの送信時に要素を削除することです。

<form onsubmit="form.removeChild(document.getElementById('javax.faces.ViewState'))">
于 2012-05-24T19:37:49.343 に答える