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 :

Cannot retrieve definition for form bean:


Sujet :

Struts 1 Java

  1. #1
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut Cannot retrieve definition for form bean:
    Bonjour,

    Je suis en train de me former à Struts et pour cela, je fais une mini-application de gestion d'un club, on peut donc ajouter un adhérent. Pour cela, j'ai fait un form MemberForm contenant toute les données ayant traits à un adhérent et une action MemberAction. J'au aussi une page member.jsp ou est le formulaire qui devrait normalement ajouter l'adhérent, malheureusement, j'obtiens cette erreur :

    javax.servlet.jsp.JspException: Cannot retrieve definition for form bean: "MemberForm" on action: "/MemberAction"
    J'ai vu sur internet que je ne suis pas le seul à avoir déja subis cette erreur, mais j'ai pas trouvé de réponse qui réussisse à me sortir de ce pétrin

    Voilà mon fichier member.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title></title>
    </head>
    <body>
    <html:errors />
    <html:form action="/MemberAction" >
    	<html:hidden property="id" />
    	Nom : <html:text property="nom" />
    	<br />
    	Prénom : <html:text property="prenom" />
    	<br />
    	Téléphone : <html:text property="telephone" />
    	<br />
    	Email : <html:text property="mail" />
    	<br />
    	Rue : 	<html:text property="rue" />
    	<br />
    	Localité : <html:text property="localite" />
    	<br />
    	Rue : <html:text property="rue" />
    	<br />
    	NPA : <html:text property="npa" />
    	<br />
    	Date de naissance : <html:text property="dateNaissance" />
    	<br />
    	<html:submit />
    </html:form>
    </body>
    </html>
    Et voilà mon fichier de config (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
    19
    20
    21
    22
    23
    <?xml version="1.0" encoding="UTF-8"?>
    <struts-config>
     
    	<message-ressources parameter="club.ressources.ApplicationResources" />
     
    	<forms-beans>
    		<form-bean name="MemberForm" type="club.forms.MemberForm" />
    		<form-bean name="SearchForm" type="club.forms.SearchForm"/>
    	</forms-beans>
     
    	<action-mappings>
    		<action path="/MemberAction" type="club.MemberAction" name="MemberForm" validate="true" input="member.jsp">
    			<forward name="sucess" path="/index.jsp" />
    			<forward name="edit" path="/member.jsp" />
    		</action>
    		<action path="/ListAction" type="club.ListAction" name="SearchForm">
    			<forward name="forward" path="/list.jsp" />
    		</action>
    	</action-mappings>
     
    	<plug-in className="club.DatabasePlugin" />
     
    </struts-config>
    Je ne comprends vraiment pas ce qui manque...

    d'avance à tous ceux qui voudront bien se pencher sur la question

    Pour info, je tourne avec Tomcat 5.0.28 et Struts 1.3.5.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Est ce que ça ne viendrait pas de ta jsp et du morceau de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="/MemberAction" >
    A tout hasard, que se passe-t-il si tu remplaces par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="MemberAction" >
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:form action="MemberAction.do" >

  3. #3
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Non ca ne change rien

    Le .do est automatiquement ajouté par struts dans ses balises...

  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
    Essaie en renommant ton form-bean memberForm avec une minuscule comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form-bean name="memberForm" type="club.forms.MemberForm" />
    sans oublier de changer la référence au form-bean dans le mapping de l'Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <action path="/MemberAction" type="club.MemberAction" name="memberForm" validate="true" input="member.jsp">

  5. #5
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Non , ça ne change rien...

    Toujours la même erreur

    Merci quand même

  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
    Question idiote : ta classe MemberForm hérite bien de ActionForm ?

  7. #7
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par c_nvy
    Question idiote : ta classe MemberForm hérite bien de ActionForm ?
    Oui

  8. #8
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    J'ai peut-être fait une erreur dans ma classe...

    La voici :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    public class MemberForm extends ActionForm{
    	private static final long serialVersionUID = 1L;
     
    	/* Données sur un membre */
    	private int id;
    	private String nom = null;
    	private String prenom = null;
    	private String telephone = null;
    	private String mail = null;
    	private String rue = null;
    	private String localite = null;
    	private int npa;
    	private String dateNaissance = null;
     
    	/**
             * @param nom the nom to set
             */
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
    	/**
             * @return the nom
             */
    	public String getNom() {
    		return nom;
    	}
    	/**
             * @param prenom the prenom to set
             */
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
    	/**
             * @return the prenom
             */
    	public String getPrenom() {
    		return prenom;
    	}
    	/**
             * @param telephone the telephone to set
             */
    	public void setTelephone(String telephone) {
    		this.telephone = telephone;
    	}
    	/**
             * @return the telephone
             */
    	public String getTelephone() {
    		return telephone;
    	}
    	/**
             * @param mail the mail to set
             */
    	public void setMail(String mail) {
    		this.mail = mail;
    	}
    	/**
             * @return the mail
             */
    	public String getMail() {
    		return mail;
    	}
    	/**
             * @param rue the rue to set
             */
    	public void setRue(String rue) {
    		this.rue = rue;
    	}
    	/**
             * @return the rue
             */
    	public String getRue() {
    		return rue;
    	}
    	/**
             * @param localite the localite to set
             */
    	public void setLocalite(String localite) {
    		this.localite = localite;
    	}
    	/**
             * @return the localite
             */
    	public String getLocalite() {
    		return localite;
    	}
    	/**
             * @param npa the npa to set
             */
    	public void setNpa(int npa) {
    		this.npa = npa;
    	}
    	/**
             * @return the npa
             */
    	public int getNpa() {
    		return npa;
    	}
    	/**
             * @param dateNaissance the dateNaissance to set
             */
    	public void setDateNaissance(String dateNaissance) {
    		this.dateNaissance = dateNaissance;
    	}
    	/**
             * @return the dateNaissance
             */
    	public String getDateNaissance() {
    		return dateNaissance;
    	}
     
    	public void reset(ActionMapping mapping, HttpServletResponse response){
    		this.nom = null;
    		this.prenom = null;
    		this.telephone = null;
    		this.mail = null;
    		this.rue = null;
    		this.localite = null;
    		this.dateNaissance = null;
    	}
     
    	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request){
    		ActionErrors erreurs = new ActionErrors();
     
    		if(nom == null || !nom.equals("")){
    			erreurs.add("nom", new ActionMessage("erreurs.member.nom.requis"));
    		}
     
    		if(prenom == null || prenom.equals("")){
    			erreurs.add("prenom", new ActionMessage("erreurs.member.prenom.requis"));
    		}
     
    		if(telephone == null || telephone.equals("")){
    			erreurs.add("telephone", new ActionMessage("erreurs.member.telephone.requis"));
    		}
     
    		if(mail == null || mail.equals("")){
    			erreurs.add("mail", new ActionMessage("erreurs.member.mail.requis"));
    		}
     
    		if(rue == null || rue.equals("")){
    			erreurs.add("rue", new ActionMessage("erreurs.member.rue.requis"));
    		}
     
    		if(localite == null || localite.equals("")){
    			erreurs.add("localite", new ActionMessage("erreurs.member.localite.requis"));
    		}
     
    		if(dateNaissance == null){
    			erreurs.add("dateNaissance", new ActionMessage("erreurs.member.dateNaissance.requis"));
    		}
     
    		return erreurs;
    	}
    	/**
             * @param id the id to set
             */
    	public void setId(int id) {
    		this.id = id;
    	}
    	/**
             * @return the id
             */
    	public int getId() {
    		return id;
    	}
     
    }

  9. #9
    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
    Il y a quelque chose qui me chiffonne dans ton struts-config.xml.

    Normalement, les différentes balises doivent être mises dans un ordre bien précis.
    Notamment, <message-resources> doit être après <action-mappings> et avant<plug-in>.
    Comme tu n'as pas spécifié de dtd , soit dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
              "http://struts.apache.org/dtds/struts-config_1_3.dtd">
    tu n'as pas de message d'erreur concernant l'ordre des balises.

    Par contre, je pense que tu dois avoir des messages d'erreur dans Tomcat au rechargement du contexte, liés au fait que tu n'as pas spécifié la balise <!DOCTYPE.

    Je ne sais pas si ça peut résoudre ton problème mais il serait bon de corriger ça quand même.
    A moins qu'il y ait beaucoup de changements avec la Struts 1.3.5.
    J'avoue que je n'ai pas pris le temps de regarder.

  10. #10
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Je viens de mettre la DTD que tu m'a donnée et j'ai modifié le fichier .xml en conséquence des erreurs, mais j'ai toujours cette erreur :

    The content of element type "struts-config" must match "(display-name?,description?,form-beans?,global-exceptions?,global-forwards?,action-mappings?,controller?,message-resources*,plug-in*)"
    Pour mon fichier :

    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
    33
    34
    35
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
    <struts-config>
     
    	<display-name />
     
    	<description />
     
    	<forms-beans>
    		<form-bean name="memberForm" type="club.forms.MemberForm" />
    		<form-bean name="searchForm" type="club.forms.SearchForm"/>
    	</forms-beans>
     
    	<global-exceptions />
     
    	<global-forwards />
     
    	<action-mappings>
    		<action path="/MemberAction" type="club.MemberAction" name="memberForm" validate="true" input="member.jsp">
    			<forward name="sucess" path="/index.jsp" />
    			<forward name="edit" path="/member.jsp" />
    		</action>
    		<action path="/ListAction" type="club.ListAction" name="searchForm">
    			<forward name="forward" path="/list.jsp" />
    		</action>
    		<action path="/member" type="org.apache.struts.actions.ForwardAction" parameter="/member.jsp" />
    	</action-mappings>
     
    	<controller />
     
    	<message-resources parameter="club.ressources.ApplicationResources" />
     
    	<plug-in className="club.DatabasePlugin" />
     
    </struts-config>
    De plus, j'ai toujours la même erreur (cannot retrieve definition...)

  11. #11
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    J'ai trouvé l'erreur...

    c'est form-beans et pas forms-beans

    Merci de ton aide.

  12. #12
    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 wichtounet
    J'ai trouvé l'erreur...

    c'est form-beans et pas forms-beans
    Je ne l'avais pas vu celle-là.
    Mais avec la DTD, l'erreur est plus facile à trouver.
    Citation Envoyé par wichtounet
    Merci de ton aide.
    De rien.

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

Discussions similaires

  1. [Struts] Cannot retrieve definition for form bean
    Par Diablo_22 dans le forum Struts 1
    Réponses: 2
    Dernier message: 10/09/2009, 12h24
  2. [Integration] Overriding bean definition for beans
    Par wajdopovitch dans le forum Spring
    Réponses: 0
    Dernier message: 04/09/2009, 12h55
  3. Cannot retrieve mapping for action
    Par jlon25 dans le forum Struts 1
    Réponses: 16
    Dernier message: 17/07/2007, 11h37
  4. Réponses: 5
    Dernier message: 03/07/2007, 14h06
  5. Cannot retrieve mapping for action /dologin
    Par gentil dans le forum Struts 1
    Réponses: 9
    Dernier message: 29/03/2007, 14h41

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