ajax フィールドを含む JSF 2 フォームに問題があります。カーソルがまだ ajax 化された入力フィールドにあるときにマウスを使用してフォームの送信ボタンを押すと、バッキング Bean でアクションがトリガーされる前にフィールドの入力値が送信されません。また、添付されたバリデーターとコンバーターはトリガーされません。
<h:form id="invoice">
...
<h:inputText value="#{invoiceBean.amount}" required="true" validator="#{invoiceBean.validateAmount}">
<f:converter converterId="CurrencyConverter" />
<f:ajax event="blur" render="@this"/>
</h:inputText>
<h:commandButton action="#{invoiceBean.processInvoice()}" />
</h:form>
また、コマンド ボタンを拡張しようとしまし<f:ajax />
たが、結果は同じままでした。同じフォームの他の (ajax 以外の) フィールド (上記のコード スニペットには表示されていません) は正しく送信されます。ボタンを直接使用する場合ではなく、送信する前にページのどこかをクリックすると、ajaxフィールドも送信、変換、および検証されます。
フォームの送信時または送信前にフィールドも送信するために欠けているものはありますか?