Dans mon JSF/app Facelets, voici une version simplifiée d'une partie de ma forme:Comment afficher les erreurs de mon application dans JSF?
<h:form id="myform">
<h:inputSecret value="#{createNewPassword.newPassword1}" id="newPassword1" />
<h:message class="error" for="newPassword1" />
<h:inputSecret value="#{createNewPassword.newPassword2}" id="newPassword2" />
<h:message class="error" for="newPassword2" />
<h:commandButton value="Continue" action="#{createNewPassword.continueButton}" />
</h:form>
Je voudrais être en mesure d'attribuer une erreur à un h spécifique: balise de message basé sur quelque chose qui se passe dans la Méthode continueButton(). Différentes erreurs doivent être affichées pour newPassword et newPassword2. Un validateur ne fonctionnera pas vraiment, car la méthode qui fournira les résultats (à partir de la base de données) est exécutée dans la méthode continueButton() et est trop chère pour être exécutée deux fois.
Je ne peux pas utiliser la balise h: messages car la page comporte plusieurs emplacements dont j'ai besoin pour afficher différents messages d'erreur. Quand j'ai essayé ceci, la page affichait des doublons de chaque message.
J'ai essayé cela comme une meilleure estimation, mais pas de chance:
public Navigation continueButton() {
...
expensiveMethod();
if(...) {
FacesContext.getCurrentInstance().addMessage("newPassword", new FacesMessage("Error: Your password is NOT strong enough."));
}
}
Qu'est-ce que je manque? Toute aide serait appréciée!
Je sais que ce n'est pas se perdre parce que les h: balise messages recrache l'erreur très bien ... Je ne sais pas comment lier l'erreur à un h spécifique: balise de message. Changer l'identifiant n'a pas aidé non plus. –