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 :

Validation de formulaire


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 679
    Par défaut Validation de formulaire
    salut tout le monde
    j'ai essayé de créer une validation 'Validator' avec un champ mais j'ai message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/test].[Faces Servlet]] "Servlet.service()" pour la servlet Faces Servlet a généré une exception: java.lang.ClassCastException: mus.test cannot be cast to javax.faces.validator.Validator
    j'utilise jsf 2.0 et eclipse
    je vous montre le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     <validator>
      <validator-id>com.mkyong.EmailValidator</validator-id>
      <validator-class>mus.test</validator-class>
     </validator>
    et la classe
    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
     
    package mus;
     
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    import javax.faces.application.FacesMessage;
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.validator.FacesValidator;
    import javax.faces.validator.Validator;
    import javax.faces.validator.ValidatorException;
     
    @FacesValidator("com.mkyong.EmailValidator")
    public class EmailValidator implements Validator{
     
    	private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\." +
    			"[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*" +
    			"(\\.[A-Za-z]{2,})$";
     
    	private Pattern pattern;
    	private Matcher matcher;
     
    	public EmailValidator(){
    		  pattern = Pattern.compile(EMAIL_PATTERN);
    	}
     
    	@Override
    	public void validate(FacesContext context, UIComponent component,
    			Object value) throws ValidatorException {
     
    		matcher = pattern.matcher(value.toString());
    		if(!matcher.matches()){
     
    			FacesMessage msg = 
    				new FacesMessage("E-mail validation failed.", 
    						"Invalid E-mail format.");
    			msg.setSeverity(FacesMessage.SEVERITY_ERROR);
    			throw new ValidatorException(msg);
     
    		}
     
    	}
    }
    et champ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <h:inputText id="email" value="#{user.email}" 
    			size="20" required="true" label="Email Address">
     
    			<f:validator validatorId="com.mkyong.EmailValidator" />
     
    		  </h:inputText>
    merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    c'est quoi le <validator-class>mus.test</validator-class> que tu as mis? Normalement tu dois mettre le nom de ta classe

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 679
    Par défaut
    c'est le nom de la classe
    test c'est le nom de la classe

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    ta classe c'est mus.EmailValidator je pense

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 679
    Par défaut
    oui je me suis trompé la class c'est EmailValidator mais toujours message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <validator>
      <validator-id>com.mkyong.EmailValidator</validator-id>
      <validator-class>mus.EmailValidator</validator-class>
     </validator>

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    essaye de changer le validatorId vers mus.emailValidator car normalement ça marche avec votre Id précédent.sinon l'erreur c'est du cast?

Discussions similaires

  1. validation du formulaire de la page ouvrante d'un popup
    Par noa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/08/2005, 12h11
  2. Réponses: 5
    Dernier message: 24/05/2005, 11h21
  3. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14
  4. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

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