J'ai un formulaire IceFaces et plusieurs champs de saisie.Pourquoi les validateurs de composants inchangés sont-ils appelés?
Disons que j'ai ceci:
<ice:selectOneMenu id="accountMenu"
value="#{accountController.account.aId}"
validator="#{accountController.validateAccount}">
<f:selectItems id="accountItems"
value="#{accountController.accountItems}" />
</ice:selectOneMenu>
et ceci:
<ice:selectOneMenu id="costumerMenu"
value="#{customerController.customer.cId}"
validator="#{customerController.validateCustomer">
<f:selectItems id="customerItems"
value="#{customerController.customerItems}" />
</ice:selectOneMenu>
Si je change d'une valeur, le validateur respectif est appelé, ce qui est bien. Mais aussi l'autre validateur est appelé, ce qui n'est pas bien, parce que l'utilisateur reçoit un message irritant pour insérer une valeur dans un champ auquel il allait peut-être faire attention. C'est comme piquer l'utilisateur avec un bâton pour "Dépêchez-vous maintenant!". MAL!
Je pensais que l'attribut "partialSubmit" contrôlait ce comportement, donc seulement la partie DOM soumise, qui est affectée par l'interaction de l'utilisateur, mais si je déclare les deux composants à soumettre partiellement, rien ne change. Les deux validateurs sont toujours appelés si la valeur d'un composant est modifiée.
Comment puis-je empêcher la validation de la totalité du formulaire jusqu'à ce qu'il soit complètement soumis?
Quelle version d'ICEfaces utilisez-vous? –
C'est IceFaces version 1.8.2 – bl4ckb0l7