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 :

[Struts][DynaActionForm et persistance des objets]


Sujet :

Struts 1 Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 4
    Points
    4
    Par défaut [Struts][DynaActionForm et persistance des objets]
    Bonjour tout le monde, voila mon pb:
    J'utilise struts pour réaliser une appli web, je suis débutant dans le domaine. Je dois réaliser un formulaire dynamique. Pour cela, j'utilise la classe DynaActionForm. J'ai vu dans un article, que l'on pouvait associer n'importe quel type de champ à ce formulaire, ce qui m'arrangerait énormément. Je souhaite donc définir un champ de type SocieteBean. Voici donc le fichier xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            <form-bean name="setupsteForm" type="org.apache.struts.action.DynaActionForm">
                <form-property name="societe" type="com.ades.bean.SocieteBean" />
                <form-property name="test" type="java.lang.String" />
            </form-bean>
    L'action mapping servant à instancier mon formulaire est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            <action
                attribute="gestionsteForm"
                input="/vues/gestionste.jsp"
                name="gestionsteForm"
                parameter="submit"
                path="/gestionste"
                type="com.ades.struts.action.GestionsteAction"
                scope="session"
                validate="false"
                 />
    L'instanciation du form se passe bien. Voici l'action mapping de soumission du formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            <action
                input="/vues/setupste.jsp"
                name="setupsteForm"
                path="/setupste"
                type="com.ades.struts.action.SetupsteAction"
                scope="session"
                validate="false"
                />
    Voici le code de ma page 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
     
     <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> 
    <%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt"%>
    <%@ taglib uri="/WEB-INF/c.tld" prefix="c"%>
    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles"%> 
    <html> 
    	<head>
    		<meta name = "Generator" content = "Easy Struts Xslt generator for Eclipse (http://easystruts.sf.net).">
     
    		<title>Struts Form for setupsteForm</title>
    	</head>
    	<body>
    		<bean:define id="societe" name="societe" type="com.ades.bean.SocieteBean" toScope="session"/>
    		<html:form action="/setupste">
    			<html:text name="societe" property="nom_societe"/><html:errors property="societe"/></br>
    			<html:text property="test" /><html:errors property="test"/></br>
    			<html:submit/><html:cancel/>
    		</html:form>
    	<body>
    </html>
    A noter que j'obtien bien la valeur désirée dans le champ societe.
    Là où une erreur se produit, c'est lors de la soumission du formulaire.
    Voici le code de la méthode appelée lors de la soumission:
    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
     
    	public ActionForward execute(
    		ActionMapping mapping,
    		ActionForm form,
    		HttpServletRequest request,
    		HttpServletResponse response)
    		throws Exception {
     
    		DynaActionForm setupsteForm = (DynaActionForm) form;
     
    		SocieteBean societe = (SocieteBean) setupsteForm.get("societe");
    		String liste = societe.getNom_societe();
    		String essai = (String) setupsteForm.get("test"); 
    		request.setAttribute("listeessai",liste);
    		request.setAttribute("essai",essai);
    		return mapping.findForward("test");
    	}
    Malheureusement, la chaine de caractère "liste" est vide, alors qu'elle devrait contenir le champ texte societe. Ce qui est plus fou, c'est que la chaine essai représentative du champ de texte "test" n'est pas vide et contient la bonne valeur saisie. Ce qui voudrait dire qu'il n'est pas possible d'associer au formulaire des paramètres de types quelconque?
    Ou bien (et je pense plus à cela) que j'ai du oublier qqchose. Voila, j'espère avoir été compréhensible.
    Merci. :o [/quote]

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 105
    Points : 107
    Points
    107
    Par défaut
    As tu testé ton objet societe pour vérifier qu'il n'est pas à null?
    "Plus on fait de conneries, moins on en aura à faire...."

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Oui et c'est bien ça mon problème.Cet objet ne renvoie pas un pointeur null, mais tous ses champs son vides (comme nom_societe, par ex.)

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 105
    Points : 107
    Points
    107
    Par défaut
    Dans ton form tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:text name="societe" property="nom_societe"/>
    nom_societe n'est pas une propriété de ton formulaire, c'est societe qui l'est.
    Essayes ça plutot:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:text name="setupsteForm"  property="societe.nom_societe" />
    Normalement ca devrait mieux marcher je pense...

    [/code]
    "Plus on fait de conneries, moins on en aura à faire...."

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Yes, ça marche!!Par contre je suis obligé de passer dans ma requete setupsteForm (dans l'action qui génère le form). En fait voila à quoi ressemble le fichier java qui génère le form:
    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
     
    	public ActionForward modifier(
    		ActionMapping mapping,
    		ActionForm form,
    		HttpServletRequest request,
    		HttpServletResponse response)
    		throws Exception {
     
    //on crée le bean societe
    SocieteBean societe = new SocieteBean();
    //..
    //..		
    		DynaActionForm setupsteForm = (DynaActionForm) form;
     
    		setupsteForm.set("societe",societe);	
    		request.setAttribute("setupsteForm", setupsteForm);
    		return mapping.findForward("setupste");
    	}
    Pour la reste, c'est tout comme a dit LouLouFiFi. Merci beaucoup d'ailleurs!!!!

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

Discussions similaires

  1. Persistance des objets
    Par princenourdino dans le forum Débuter
    Réponses: 1
    Dernier message: 08/11/2010, 11h40
  2. Persistance des objets
    Par akito dans le forum Langage
    Réponses: 12
    Dernier message: 28/08/2009, 16h52
  3. problème avec la persistance des objets
    Par gentil dans le forum Hibernate
    Réponses: 15
    Dernier message: 04/04/2007, 11h44
  4. Persister des objets etendus
    Par Alec6 dans le forum Hibernate
    Réponses: 3
    Dernier message: 20/03/2007, 00h01
  5. Persistance des objets : comment ?
    Par SteelBox dans le forum C++
    Réponses: 1
    Dernier message: 28/11/2005, 21h47

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