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

Struts 1 Java Discussion :

validation d'une date


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 43
    Points
    43
    Par défaut validation d'une date
    Bonjour,

    J'ai un formulaire dont lequel je veux valider une date.Alors dans la méthode validate du formulaire j'insere le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(dateReclamation==null||dateReclamation.trim().equals("") )errors.add("dateReclamation", new ActionError("error.dateReclamation.vide"));
    		if(!dateReclamation.matches("(19|20)/d/d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])"))errors.add("dateReclamation", new ActionError("error.dateReclamation.incorrect"));
    J'aimerai que ma date ait le format: yyyy/mm/dd
    sauf que ca fonctionne pas avec le test au dessus


    Merci d'avance pour votre aide

    Cordialement

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu pourrais utiliser un SimpleDateFormat pour ton test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
    Date uneDate = sdf.parse(leChampFormulaire);
    Si le format n'est pas correcte, tu auras une exception, sinon, c'est ok...
    A+

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 43
    Points
    43
    Par défaut
    Bonsoir,

    en fait ca je le fais dans mon action.

    mais mon souci maintenant, c'est de faire le test sur le champ avant meme d'arriver a mon action de la maniere suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	@Override
    	public ActionErrors validate(ActionMapping mapping,
    			HttpServletRequest request) {
    		// TODO Auto-generated method stub
    		ActionErrors errors = new ActionErrors();
    		if(dateReclamation==null||dateReclamation.trim().equals("") )errors.add("dateReclamation", new ActionError("error.dateReclamation.vide"));
    		if(!dateReclamation.matches("(19|20)/d/d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])"))errors.add("dateReclamation", new ActionError("error.dateReclamation.incorrect"));
    		if(nature==null||nature.trim().equals("") )errors.add("nature", new ActionError("error.nature.vide"));
    		return errors;
    	}
    mais il parait a ce moment la que j ai un probleme avec l expression reguliere

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour vérifier qu'une date correspond à un format donné, il faut faire comme te l'a indiqué OButterlin.

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 43
    Points
    43
    Par défaut
    En fait, j'ai suis la méthode et j 'ai fait dans ma methode validate ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    try {
    			SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
    			Date date = format.parse(dateReclamation);
    		} catch (Exception e) {
    			// TODO: handle exception
    			errors.add("dateReclamation", new ActionError("error.dateReclamation.incorrect"));
    		}
    Mais cela me donne une erreur au niveau du navigateur alors que je cherche l'appel de ma page d'erreur

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 139
    Points : 43
    Points
    43
    Par défaut
    merci les amis, j'ai réessayé le truc et ca marche

    Et si on veut être encore plus professionnel et refaire la même chose avec un struts validator, comment je devrai prosséder??

  7. #7
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour la mise en oeuvre du Validator, voir le Struts Validator Guide et la FAQ Struts.

Discussions similaires

  1. [MVC] JSR 303 : validation d'une date de naissance sur 3 champs
    Par garthos dans le forum Spring Web
    Réponses: 1
    Dernier message: 29/05/2012, 17h43
  2. validation d'une date
    Par chris_013 dans le forum JSF
    Réponses: 3
    Dernier message: 05/02/2009, 16h31
  3. Réponses: 2
    Dernier message: 25/03/2008, 11h39
  4. validation d'une date
    Par delph1983 dans le forum Struts 1
    Réponses: 1
    Dernier message: 24/08/2007, 09h53
  5. Réponses: 2
    Dernier message: 21/03/2007, 16h06

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