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 :

problème de initFormBean


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé Avatar de habasque
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Septembre 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 530
    Par défaut problème de initFormBean
    salut à tous,
    je rencontre l'erreur suivante :
    Javax.servlet.jsp.JspException: Exception creating bean of class ConnexionForm: {1}
    org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:465)
    org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:432)
    pensez-vous que le problème vienne du struts-config.xml ou du ConnexionForm ?

    merci d'avance
    jeremie

  2. #2
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Ton ConnexionForm hérite bien d'une classe de type ActionForm, ValidatorForm, ... ?

  3. #3
    Membre éclairé Avatar de habasque
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Septembre 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 530
    Par défaut heritage de action form
    oui voici le code de ma classe ConnexionForm :

    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
    package forms;
     
    import javax.servlet.http.HttpServletRequest;
     
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;
     
    public class ConnexionForm extends ActionForm{
     
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	private String login;
    	private String password;
     
    	public ActionErrors validate( ActionMapping mapping, HttpServletRequest req) {
     
    	    ActionErrors errors = new ActionErrors();
    	    if (nullOrBlank(login)) {
    	       errors.add( "login", new ActionMessage("image.obligatoire", "Login"));
    	    }
    	    if (nullOrBlank(password)) {
    	       errors.add( "password", new ActionMessage("image.obligatoire", "Password"));
    	    }
     
    	    return errors;
    	}
     
    }

    et la partie du struts-config correspondant :

    Code xml : 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
    <form-beans>
     
        	<form-bean name="frmConnexion" 
        	           type="ConnexionForm">
        	</form-bean>
     
    	</form-beans>
     
     
      <!-- ========== Action Mapping Definitions ============================== -->
     
      <action-mappings>
     
    	<action path="/Connexion" 
       	        type="ConnexionAction" 
       	        parameter="txDeclencheur"
       	        name="frmConnexion"
       	        scope="request"
       	        input="/WEB-INF/jsp/connexion.jsp"
       	        >
      	 <forward name="success" path="/WEB-INF/jsp/menu.jsp"/>
    	</action>


    maintenant je me demande si les .class sont placés au bon endroit ...???
    j'ai des doutes sur mon build.xml...

  4. #4
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    2 remarques :
    dans ton Form, tu n'as pas de Setter / Getter, à moins que tu n'en ai fait l'économie lorsque tu as recopié le code sur le forum
    tu écris type="ConnexionForm", or ton Form est dans le package forms, ce serait donc plutôt type="forms.ConnexionForm"

  5. #5
    Membre éclairé Avatar de habasque
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Septembre 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 530
    Par défaut ca ne fonctionne toujours pas
    oui j'ai bien fait l'économie des getter and setter.
    j'ai preciser forms.ConnexionForm mais l'erreur persiste :
    excepción

    javax.servlet.ServletException: Exception creating bean of class forms.ConnexionForm: {1}
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
    org.apache.jsp.build.jsp.connexion_jsp._jspService(org.apache.jsp.build.jsp.connexion_jsp:85)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    causa raíz

    javax.servlet.jsp.JspException: Exception creating bean of class forms.ConnexionForm: {1}
    org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:465)
    org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:432)
    org.apache.jsp.build.jsp.connexion_jsp._jspx_meth_html_form_0(org.apache.jsp.build.jsp.connexion_jsp:102)
    org.apache.jsp.build.jsp.connexion_jsp._jspService(org.apache.jsp.build.jsp.connexion_jsp:74)
    je sèche...
    j'ai bien trouvé des indications à ce sujet dans le post :
    http://www.developpez.net/forums/sho...?t=9459&page=1
    mais je ne comprends pas bien la bidouille de copier le .class ?

  6. #6
    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
    ConnexionForm.class est-il bien sous WEB-INF/classes/forms ?

  7. #7
    Membre éclairé Avatar de habasque
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Septembre 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 530
    Par défaut le ConnexionForm.class est bien sous WEB-INF/classes/forms
    oui, le le ConnexionForm.class est bien sous WEB-INF/classes/forms

    j'ai beau chercher sur le net, je ne trouve pas de solution.
    si tu as une idée, je ne sais plus comment prendre le problème...

  8. #8
    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
    Dans le struts-config.xml, dans le mapping de ton Action, tu as codé :
    Ton Action ConnexionAction n'est-elle pas dans un package ?

  9. #9
    Membre éclairé Avatar de habasque
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Septembre 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 530
    Par défaut package actions de ConnexionAction
    la classe ConnexionAction se situe dans le package Actions.
    j'ai modifié le struts-config.xml en conséquence mais le message d'erreur est le suivant :
    javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.validator.DynaActionForm: {1}
    org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:465)
    org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:432)
    je te remets le code du 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
    13
    14
    15
    16
    17
    18
    <form-beans>
        	<form-bean name="frmConnexion" 
        	           type="org.apache.struts.validator.DynaActionForm">
        	</form-bean>
    </form-beans>
    <action-mappings>
     
    	<action path="/Connexion" 
       	        type="actions/ConnexionAction" 
       	        parameter="txDeclencheur"
       	        name="frmConnexion"
       	        scope="session"
       	        input="/WEB-INF/jsp/connexion.jsp"
       	        >
      	 <forward name="success" path="/WEB-INF/jsp/menu.jsp"/>
    	</action>
     
      </action-mappings>
    je pense que le problème est plus en relation avec le formulaire que avec l'Action, non ?

  10. #10
    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
    C'est plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	<action path="/Connexion" 
       	        type="actions.ConnexionAction" ...
    Et tu parles d'un package Actions et non actions. Il faut respecter la casse.
    Normalement, les noms de package doivent commencer par une minuscule, selon les conventions de nommage java.

    Sinon, tu as changé ton ActionForm en DynaActionForm mais tu n'as pas défini les propriétés de ton formulaire via des balises form-property dans la balise form-bean.

  11. #11
    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
    Jette un oeil à la FAQ Struts pour les DynaActionForm ici.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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