私のページには、コンポーネントが managedBean から値を取得するフォームがあります。次に、ページに次のボタンがあります。
<p:commandButton value="Search" action="#{mbProduct.selectBrand}" ajax="false" immediate="true" />
このボタンをクリックすると、ユーザーがブランドページにリダイレクトされるため、ユーザーは製品のブランドを選択して製品ページに戻ることができます (ユーザーがボタンをクリックしたときとまったく同じ方法)。問題は、フォーム内のinputTextsの値を変更し、すぐに[検索]ボタンをクリックすると、ユーザーがクリックする前にそれを行うためのajaxリクエストがないため、inputTextの値がmanagedBeanに送信されないことです検索ボタン。ボタンがアクションを呼び出す前に、この動作を回避してフィールド値を設定するにはどうすればよいですか?
---編集--- アレクサンドルが示唆したように、ボタンから immediate="true" を取り出しましたが、検証エラーが発生しました。このフィールドにある特定の検証:
<p:selectOneMenu value="#{myMb.selectedItem}">
<f:selectItems value="#{myMb.itemsList}" />
</p:selectOneMenu>
itemsList は myMb コンストラクターで遅延初期化され、ユーザーが selectedValue を変更しない場合にのみ検証エラーが発生します。この値を変更すると、検証エラーは発生しません。