IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Message d'erreur avec paramètre


Sujet :

JSF Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Points : 228
    Points
    228
    Par défaut Message d'erreur avec paramètre
    Bonjour,

    j'utilise JSF 1.2 et pour les champs required, j'utilise presque systématiquement l'attribut requiredMessage pour personnaliser les messages d'erreur lorsqu'un champ requis n'est pas renseigné.

    Je voudrais pouvoir passer un paramètre à mes messages d'erreur.
    Par exemple mon message est
    "{0} est obligatoire" et je voudrais pouvoir passer le nom à afficher à la place de {0}.

    Savez-vous comment faire ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    hummm c'est pas évident. La seul solution à ma connaissance est de passer par un phaseListener.

    Tu récupére ton message d'erreur avec Iterator i = fc.getClientIdsWithMessages(); (fc est ton facesContext)

    et tu récupére la valeur de ton composant :
    UIComponentPerspective ccompo = (UIComponentPerspective)c;
    String value = new String((String)ccompo.getSubmittedValue());

    voila le code complet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
     
     
    import java.util.Iterator;
     
     
    import javax.faces.application.FacesMessage;
    import javax.faces.component.UIComponent;
    import javax.faces.component.UIViewRoot;
    import javax.faces.context.FacesContext;
     
    import javax.faces.event.PhaseEvent;
    import javax.faces.event.PhaseId;
    import javax.faces.event.PhaseListener;
     
    import org.apache.myfaces.component.html.ext.UIComponentPerspective;
     
     
    	  public class JsfListener implements PhaseListener {
     
    	      public PhaseId getPhaseId() {
    	          return PhaseId.RENDER_RESPONSE;
    	      }
     
    	      public void beforePhase(PhaseEvent e) {
    	          FacesContext fc = e.getFacesContext();
    	          UIViewRoot root = fc.getViewRoot();
    	          Iterator i = fc.getClientIdsWithMessages();
    	          while (i.hasNext()) {
    	              String clientId = (String) i.next();
    	              if (clientId != null){
    	            	  UIComponent c = (UIComponent) root.findComponent(clientId);
    	            	  if (c!=null){
     
     
    			              String fieldRef = 
    			                  (String) c.getAttributes().get("test");
    			              if (fieldRef != null) {
     
     
    			              UIComponentPerspective ccompo = (UIComponentPerspective)c;
    			             String value = new String((String)ccompo.getSubmittedValue());
    			             if (!value.equals(""))
    			             {
    				             ccompo.setSubmittedValue("");
     
     
    				                  Iterator j = fc.getMessages(clientId);
    				                  while (j.hasNext()) {
     
    				                	  FacesMessage fm = (FacesMessage) j.next();
    				                      fm.setSummary(value +" : Format de date incorrect");
     
    				                  }
    			             }
    			              }
    		             }
    		         	}
    	          }
    		      }
     
    	      public void afterPhase(PhaseEvent e) {
     
    	      }
     
    	  }

Discussions similaires

  1. message d'erreur avec mysql
    Par ulysse031 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 07/02/2007, 20h23
  2. les messages d'erreurs avec "yacc/bison"
    Par minirop dans le forum C
    Réponses: 6
    Dernier message: 20/12/2006, 19h17
  3. message d'erreur avec le Run Time Access 2003
    Par barbu44 dans le forum Runtime
    Réponses: 3
    Dernier message: 10/12/2006, 15h03
  4. message d'erreur avec borland c++
    Par sally042 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 06/12/2006, 16h41
  5. Message d'erreur avec Bulk Insert
    Par Shivas dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 18/07/2005, 13h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo