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 :

[débutant] la methode Validate() n'est pas appellée


Sujet :

Struts 1 Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut [débutant] la methode Validate() n'est pas appellée
    Bonjour, je debute en struts...

    J'ai erreur toute bête, j'ai un formulaire que je veux valider pour m'assurer qu'un des champs n'est pas vide ... Je veux utiliser la methode validate() mais elle n'est pas appellée automatiquement comme elle devrait, j'ai du faire une betise qqpart ... Je vous donne mon code, si qqn a une idée ...

    Dans struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <form-bean name="applicationForm" 
    	type="com.sopragroup.appmanager.web.forms.ApplicationForm"/>
     
    [ ... ]
     
    <action 
    	path="/applicationSave" scope="request" name="applicationForm"
    	type="com.sopragroup.appmanager.web.actions.ApplicationSave"
    	validate="true" input="/applicationAdd.do">
    	<forward name="success" path="/applicationsList.do"/>
    </action>
    Dans ApplicationForm.java j'ai bien une methode validate() ...


    Mais elle n'est pas appellée ... pourquoi ?

    merci d'avance ...

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 129
    Points
    129
    Par défaut
    Tout m'a l'air bon, est-ce que ta classe ApllicationForm extends ValidatorForm ? sinon tu peux essayer ...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut en fait ...
    Je viens d'essayer d'heriter de ValidatorForm mais ca leve une exception car il cherche la config (validator.xml je pense ...) mais moi je pensais faire ca simplement avec le validate() j'ai pas trop envie de sortir la grosse artillerie ...

    Je vais peut-etre etre obligé

  4. #4
    Membre actif Avatar de coco62
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 237
    Points : 278
    Points
    278
    Par défaut
    non, ta méthode est ok.
    Si un validator est apellé, c'est qu'il est déclaré dans ton struts-config

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut un plugin ?
    dois-je declerer un plugin a la fin du struts-config ????

    Je suis perdu, ca devrait tourner tout seul ce truc !!!

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 129
    Points
    129
    Par défaut
    Normalement non, l'entête de ta méthode ressemble bien a ca ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut A la virgule près
    C'est exactement ca !!!

    Je ne comprend pas ... ca doit venir d'ailleurs ... c'est louche ... pq ca marche chez les autres et pas chez moi

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 129
    Points
    129
    Par défaut
    Mais le reste fonctionne ? tu arrives à récupérer les valeurs de ton formulaire ?

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut oui
    Oui pas de problème ... tout fonctionne comme il faut ... c'est ca le pire !!!

    Si seulement rien ne marchait, je changerais de metier mais la il n'y a que ce truc de ***** qui m'embete ...

    Enfin un formulaire non validé ca ne sert pas a gd chose ...

    Merci de ton aide .

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Points : 129
    Points
    129
    Par défaut
    C'est bizarre quand même

    Un dernier petit truc, est-ce que tu as essayé avec scope="session" ? (si tu n'es pas obligé de passer par un scope="request")

  11. #11
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut


    ca ne marche pas non plus ...

    Je ne sais plus comment faire ... je verrai pour une solution "plus lourde" apres ...

    Merci .

  12. #12
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Points : 42
    Points
    42
    Par défaut voila la solution
    Il faut redéfinir la méthode validate(ActionMapping mapping,HttpServletRequest request) de l'ActionForm et y implémenter les validations.
    Cette méthode est appellée systématiquement après le remplissage de l'ActionForm.
    Si aucune erreur n'est constatée, la méthode retourne null ou une instance de ActionErrors de taille 0.
    Si une erreur est constatée, une instance de ActionErrors contenant une ou plusieurs instances de ActionMessage (ActionError pour d'anciennes versions de Struts) est retournée. Les messages d'erreurs sont alors affichés grâce à la balise <html:errors/>

  13. #13
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut c'est bien ca le problème ...
    Je sais tout ca justement ...

    J'ai redefinis validate() en y mettant un Sytem.out.println() et ca ne me l'affiche jamais !!!

    il ne passe donc pas par cette methode ... mais comme tu le dis c'est systematique normalement c'est là que je ne comprend rien !!!

  14. #14
    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
    Montre-nous le code de ton ActionForm et celui de la jsp.
    Modératrice Java - Struts, Servlets/JSP, ...

  15. #15
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut
    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
     
    public class applicationForm extends ActionForm{
     
    	private static final long serialVersionUID = 1L;
    	public String name = null;
    	public String description = null;
     
    	public void reset(ActionMapping arg0, HttpServletRequest arg1) {
    		super.reset(arg0, arg1);
    	}
     
    	...gettters / setters ...
     
    	public ActionErrors validate(ActionMapping arg0, ServletRequest arg1) {
     
    	System.out.println("passé par validate() d'appli");
     
    	return new ActionErrors();
    	}

    JSP :
    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
     
    <html:form action="/applicationSave">
     
    <p align="center">
    <table bgcolor="#eeeeee" border="#dddddd">
    <tr>
      <td><bean:message key="element.name"/> : </td>
      <td><html:text property="name"/></td>
    </tr>
    <tr> 
      <td><bean:message key="element.desc"/> :</td>
      <td> <html:text property="description"/></td></tr>
    <tr>
      <td colspan="2" align="center"><html:submit value=" &nbsp; Create &nbsp; "/></td>
    </tr>
    </html:form>

  16. #16
    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
    Dans le struts-config.xml, tu as défini ton ActionForm avec un "A" majuscule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form-bean name="applicationForm" 
    	type="com.sopragroup.appmanager.web.forms.ApplicationForm"/>
    et pourtant ta classe commence par un "a" minuscule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class applicationForm extends ActionForm
    à moins que tu aies fait l'erreur en postant le code ?
    Modératrice Java - Struts, Servlets/JSP, ...

  17. #17
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut si seulement...
    je suis allé voir vite dans mon code avec l'excitation de celui qui va decouvrir un tresor ... mais non, c'est bien une erreur en postant !!!

    je suis dégouté ....

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Par contre, ta méthode validate a un paramètre ServletRequest à la place de HttpServletRequest

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  19. #19
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 33
    Points
    33
    Par défaut Je peux t'embrasser ???
    MERCI MERCI MERCI MERCI MERCI !!!!!!!!


    je crois que ca vaut bien ca !!!


    Trop cool !!! j'en pouvais plus ...

    Merci encore à tous ...


    P.S : J'ai oublié de vous dire : CA MARCHE !!!

  20. #20
    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
    Citation Envoyé par OButterlin
    Par contre, ta méthode validate a un paramètre ServletRequest à la place de HttpServletRequest

    A+
    Bien vu OButterlin.
    Modératrice Java - Struts, Servlets/JSP, ...

Discussions similaires

  1. [Framework] [AOP] L'aspect n'est pas appelé
    Par damien77 dans le forum Spring
    Réponses: 1
    Dernier message: 19/02/2009, 17h41
  2. La classe Installer n'est pas appelée
    Par alexandreb dans le forum C#
    Réponses: 5
    Dernier message: 06/07/2007, 15h35
  3. [AJAX] [Firefox] send n'est pas appelée tout le temps
    Par MademoiselleL dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/07/2007, 15h16
  4. Réponses: 4
    Dernier message: 05/09/2005, 22h58
  5. [servlet][filtre] filtre qui n'est pas appelé
    Par felix79 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 29/06/2005, 20h09

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