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 :

Méthode validate() et classe Action


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut Méthode validate() et classe Action
    Bonjour a tous,

    voila j'ai un problème avec les validations Struts et la méthode validate() de ma classe ActionForm. En fait dans ma classe ActionForm, je fais un validate pour tester la conformité des données entrée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    		ActionErrors erreurs = new ActionErrors();
     
    		if(dtDebut != null && dtDebut.length() != 10)  {
    			erreurs.add("dtDebut", new ActionMessage("msg.error.date.coherence"));
    		}
     
    		if(dtFin != null && dtFin.length() != 10) {
    			erreurs.add("dtFin", new ActionMessage("msg.error.date.coherence"));
    		}
     
    		return erreurs;
    	}
    Voici le code de mon Action:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public ActionForward execute(...) {
    		// liste des profils
    		List profils = ProfilDAO.findProfils();
    		request.setAttribute("profils", profils);
     
    		// liste comptes 
    		ComptesForm comptesBloquesForm = (ComptesForm)form;
    		List comptes = UtilisateurDAO.findUtilisateursComptes(...);
    		request.setAttribute("comptes", comptes);
     
    		return mapping.findForward("succes");
    	}
    Dans mon action on constate que je récupére tous les profils utilisateurs pour faire un filtre. Mais si une erreur est détecté par la méthode validate() alors en fait j'ai l'impression qu'il ne passe pas par mon action puisque je ne récupéré pas mes profils.

    Ainsi lors de l'affichage de ma JSP, j'ai une erreur comme quoi le bean "profils" n'existe pas.

    Aurriez-vous une solution ?

    Merci par avance.
    Jérémy
    Ingénieur Conception et Développement

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Si je ne me trompe pas si validate() ne retourne pas null alors la méthode execute() n'est pas exécuter d'ou l'erreur que profils n'existe pas faut dans ta jsp vérifier que profils != null avant de l'afficher.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    tout d'abord, merci pour tes indications...

    en fait le problèmes c'est que j'ai besoin des données de "profils" je ne peux pas les enlever. Donc il faudrait que peut importe ce qui se passe, je puisse avoir mes données "profils".

    Aurais-tu une solution à me proposer ?
    Jérémy
    Ingénieur Conception et Développement

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 104
    Points : 103
    Points
    103
    Par défaut
    dans struts-config rajoute un forward que tu nommes "fail" par exemple et qui renvoie automatiquement sur la page de création de profil si validate ne renvoie pas null.

    dans ta page de création de profil rajoutes quelque part la balise <html:errors /> qui indiquera à l'utilisateur pourquoi le profil ne s'est pas créé.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    cela ne marche pas, voici mon fichier de struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <action path="/comptesBloques"
            		name="ComptesBean"
            		type="xxx.yyy.Classe">
          		<forward name="succes" path="page.comptes" />
          		<forward name="fail" path="/comptes.do" />
         	</action>
    Pour faire la validation il faut que je rajoute l'attribut validate="true" qui me force a rajouter l'attribut input. Cette attribut est la où va être redirigé l'utilisateur en cas d'erreur.

    On ne passe donc pas dans forward fail.
    Jérémy
    Ingénieur Conception et Développement

  6. #6
    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
    Tu peux mettre /comptes.do dans l'attribut input :
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    mais en fait la pages comptes.do et /comptesBloques sont les mêmes donc au final je vais tourner en rond!
    Jérémy
    Ingénieur Conception et Développement

  8. #8
    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
    Si tu veux que les erreurs de validation s'affichent dans la page ainsi que tes données de "profils", mets l'attribut validate à false dans le mapping de l'Action et fait appel à la validation directement dans l'Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	ActionMessages errors = form.validate(mapping, request);
    	if ( !errors.isEmpty() )
    	{
    		this.saveErrors(request, errors);
    	}
    Modératrice Java - Struts, Servlets/JSP, ...

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2005
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 513
    Points : 416
    Points
    416
    Par défaut
    Merci c_nvy pour ta solution, c'est ce que j'ai utilisé et cela fonctionne parfaitement comme je veux!!!

    merci à vous pour votre aide et bonne continuation...
    Jérémy
    Ingénieur Conception et Développement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/08/2005, 16h12
  2. [JSP][STRUTS] Passer des objets à une classe action
    Par maphi dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/08/2005, 16h55
  3. appel entre méthodes de meme classe
    Par frmaniako dans le forum C++
    Réponses: 8
    Dernier message: 10/09/2004, 22h55
  4. [Struts][classe Action]Mettre un objet en parametre (suite)
    Par julienOriano dans le forum Struts 1
    Réponses: 6
    Dernier message: 16/06/2004, 15h54
  5. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02

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