2009-07-20 7 views
1

J'ai rencontré un scénario de blocage et j'ai besoin d'aide. Le problème est essentiellement ceci: Il y a un champ sur la page qui est attaché à un validateur. Ce validateur valide à son tour d'autres champs dans une relation particulière et devrait lancer des messages d'erreur pour tous les champs connexes qui ont échoué à la validation.Plusieurs messages pour un seul validateur JSF

Donc, fondamentalement, je veux qu'une seule exception de validateur contienne plusieurs facesmessage qui devraient être affichées sur la page une liste. Y a-t-il une méthode pour faire la même chose? De ma compréhension chaque ValidatorException peut être attaché avec un seul FacesMessage. Donc j'ai essayé en donnant "\ n" et même "" entre différents messages dans une seule chaîne de FacesMessage pour afficher les messages dans de nouvelles lignes mais cela ne fonctionne pas. Est-ce que quelqu'un peut m'aider s'il vous plait?

Répondre

2

Que diriez-vous d'ajouter les messages faces directement, par exemple, si vous aviez 3 saisie de texte les champs que vous souhaitez afficher un message sur, et les avait liés comme INPUT1, INPUT2 et INPUT3:

FacesContext.getCurrentInstance().addMessage(
    input1.getClientId(FacesContext.getCurrentInstance()), 
    new FacesMessage(FacesMessage.SEVERITY_ERROR, 
     "Validation Failed", "Validation Failed")); 

FacesContext.getCurrentInstance().addMessage(
    input2.getClientId(FacesContext.getCurrentInstance()), 
    new FacesMessage(FacesMessage.SEVERITY_ERROR, 
     "Validation Failed", "Validation Failed")); 

FacesContext.getCurrentInstance().addMessage(
    input3.getClientId(FacesContext.getCurrentInstance()), 
    new FacesMessage(FacesMessage.SEVERITY_ERROR, 
     "Validation Failed", "Validation Failed")); 
+0

Je ne l'ai pas essayé Je pense que cette approche reflétera ces messages avec les autres messages du validateur. J'ai essayé quelque chose comme ceci en incluant des méthodes semblables dans la méthode de soumission. Mais alors la validation s'est produite à un stade différent du cycle de vie et tous les messages ne sont pas sortis en même temps. Je veux dire que si j'ai le validateur 1 associé au message 1 validateur 2 associé au message 2 et au-dessus, j'ajouterai le message 3 et le message 4..après la validation, le premier et le deuxième message se réuniraient sinon les messages 3 et 4 s'afficheront. J'espère que je suis clair .. – Barun

+0

Lorsque nous rencontrons cela dans nos projets, nous ne mettons pas de validateurs sur la page, mais nous gérons tout cela à partir d'une méthode de soumission sur le bean. C'est vraiment la façon la plus propre que nous avons trouvée. –

+0

@Nicholas J'étais inutilement inquiet. La méthode que vous avez décrite fonctionne correctement pour l'affichage de plusieurs messages de validation pour un seul champ. – Barun

Questions connexes