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 :

valider un formulaire avec struts


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Par défaut valider un formulaire avec struts
    salut tout le monde
    je suis un débutant en Struts (v 1.3.8) et j'ai une application avec celui-ci.
    au niveau de la base de données il existe une table appelée emlpoyé dont les champs suivants:matricule(entier),nom(texte),prenom(texte),age,adresse(texte),salaire(réel),tel(texte),email(texte),date d'embauche(date).
    j'ai crée la page jsp correspondante.
    mon but n'est pas seulement la réalisation de l'ajout des emplyés mais aussi la validation de tous le champs saisis dans le formuaire.
    mes questions sont les suivantes:
    1)la déclaration de tous les champs dans l'ActionForm en String est obligatoire?
    2)si oui?pourquoi?
    3)je vois que certaines vérification peut se faire côté client alors est ce que je peux les faire avec javascript ou bien je dois l'éviter?

    merci d'avance pou votre aide.

  2. #2
    Expert confirmé

    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
    Par défaut
    Struts 1 est plutôt adapté pour fonctionner avec des propriétés de type String dans l'ActionForm et d'autant plus lorsqu'on utilise le Validator pour la validation.

    Tu peux effectivement activer une validation côté client mais, comme le Javascript peut être désactivé au niveau du navigateur, il est plus prudent d'activer aussi la validation côté serveur.
    Tu peux facilement mettre en oeuvre ceci avec le Validator.

  3. #3
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    De manière général, la bonne pratique est d'effectuer les vérifications coté client ET coté serveur.

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Par défaut
    merci pour l'aide

    pourquoi j'ai demandé si les propriétés de ActionForm doivent être en String car la plupart des exemples que j'ai vu les propréités ont déclaré en String.
    je reviens à mon exemple de la table emplyé et je prend seulement la colonne "age",celle-ci est déclarée dans bd en int alors je dois la déclarée en int dans ActionForm,je l'ai fait mais mon problème c'est que lors de la saisie d'une valeur n'est pas numérique dans JSP,il ne me génère pas une exception.

  5. #5
    Expert confirmé

    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
    Par défaut
    Je te conseille de définir la propriété age de type String dans l'ActionForm et de la transformer de int en String avant l'affichage du formulaire et de String en int avant la sauvegarde dans la base de données.

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Par défaut
    j'arrive à une solution pas mal

    voici le code de ActionForm:

    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
    private String age;
    public String getAge() {
    	return age;
    }
    public void setAge(String age) {
    	this.age = age;
    }
     
     
    public ActionErrors validate( ActionMapping mapping, HttpServletRequest request){
     
    ActionErrors errors = new ActionErrors();
    f(age==null || age.length()<1)
    	errors.add("age", new ActionMessage("errors.required","l'age"));
    else{
    	try{
    		int x=Integer.parseInt(age);
    	}
    	catch(NumberFormatException e){
    	errors.add("age",new ActionMessage("errors.invalid","l'age"));
    		}
    }
    	return errors;
    }
    j'utilise la variable x pour le test.

    et voicie le fichier des messages:
    errors.header=<ul>
    errors.prefix=<li style="color:red">
    errors.suffix=</li>
    errors.footer=</ul>
    errors.required={0} est obligatoire.
    errors.invalid={0} est invalide.
    bien sur j'ajoute la balise <html:errors/> pour afficher les messages d'erreur

    je vois que la vérification fonctionne bien,quel votre avis?

    il me reste la vérification de la date

Discussions similaires

  1. Validation de formulaire avec spring 2.5 et struts 2
    Par miles_ dans le forum Spring Web
    Réponses: 4
    Dernier message: 02/02/2010, 18h27
  2. validation de formulaire avec ajax
    Par debutant_linux dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 25/01/2008, 15h01
  3. Réponses: 4
    Dernier message: 04/09/2007, 08h55
  4. Réponses: 1
    Dernier message: 21/05/2007, 19h57
  5. Valider un formulaire avec la touche entree
    Par djedie dans le forum ASP.NET
    Réponses: 5
    Dernier message: 29/03/2007, 10h38

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