IceFacesフォームといくつかの入力フィールドがあります。
私がこれを持っているとしましょう:
<ice:selectOneMenu id="accountMenu"
value="#{accountController.account.aId}"
validator="#{accountController.validateAccount}">
<f:selectItems id="accountItems"
value="#{accountController.accountItems}" />
</ice:selectOneMenu>
この:
<ice:selectOneMenu id="costumerMenu"
value="#{customerController.customer.cId}"
validator="#{customerController.validateCustomer">
<f:selectItems id="customerItems"
value="#{customerController.customerItems}" />
</ice:selectOneMenu>
1つの値を変更すると、それぞれのバリデーターが呼び出されます。しかし、他のバリデーターも呼び出されますが、これは問題ありません。ユーザーは、注意を向けようとしていたフィールドに値を挿入するという苛立たしいメッセージを受け取るからです。これは、「今すぐ急いで!」というスティックでユーザーを突くようなものです。悪い!
属性「partialSubmit」がこの動作を制御していると思ったので、1つのDOMパーツのみが送信され、ユーザーの操作の影響を受けますが、両方のコンポーネントを部分的に送信するように宣言しても、何も変わりません。それでも、1つのコンポーネント値が変更されると、両方のバリデーターが呼び出されます。
完全に送信されるまでフォーム全体が検証されないようにするにはどうすればよいですか?