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] problème de scope


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut [STRUTS] problème de scope
    Bonjour,

    Un petit soucis de scope ou de configuration du struts-config.xml !

    Bon alors voila :

    G un formulaire de modification de personnes avec des champs et une listbox (les fans de c_nvy reconnaiteront ... lol).

    On accède a ce formulaire via une page web référençant tt les personnes. Dans cette page, chaque enregistrement de personne comporte un lien modifier qui pointe vers le formulaire de modification de personnes avec en paramètre l'id de la personne en question.

    Deux actions sont liés à cette opération.
    La premiere me permet de faire la requete ramenant les données de la personne via son id.
    La seconde me permet de faire une requete me permettant de remplir la listbox du formulaire de modification

    Je me suis dit qu'une solution pourrait etre de chainer les actions dans le 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
     
     <action path="/editFormationArtiste"
    	          type="fr.downtempo.GetFormationArtisteAction"
    			  name="formationArtisteForm"
    			  validate="false"
    			  scope="session"
    	          >
    			  <forward name="success" path="/loadFormationArtiste.do"/>
    	          <forward name="error" path="/formationArtiste.do"/>
    	  </action>
     
    	 <action path="/loadFormationArtiste"
    	          type="fr.downtempo.GetSelectLabelAction"
    			  name="formationArtisteForm"
    			  validate="false"
    			  scope="session"
    	          >
    			  <forward name="success" path="editFormationArtisteLink"/>
    	          <forward name="error" path="/formationArtiste.do"/>
    	  </action>
    Résultat :

    J'arrive a afficher le formulaire de modification avec la liste box remplis. Par contre au niveau des champs qui devait etre renseignés, je n'ai que le champs de l'identifiant de la personne ( qui est le parametre servant à recuperer les données).

    Je pense qu'un problème de scope est à l'origine de ce disfonctionnement... Car l'action me servant a recuperer les donner d'une personne est correctement effectuée. J'arrive à voir tt les informations dans les logs. Qu'en pensez vous ?

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    nobody ? Mon approche vous semble correct ou bien ?

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    Bon je pense aussi qu'en regroupant les deux actions, il pourrait ne plus y avoir de problème ! Je cherche la meilleure solution. Pourrais je avoir une indication ?

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    Personne n'a deja U ce comportement ?

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    c_nvy au secour ! lol ! Personne peut me repondre ?

  6. #6
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    comment alimente tu le formulaire ?

  7. #7
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    donne le code de tes actions.
    Si les actions sont chainés (via des forwards) dis toi bien que le formulaire que tu vas posté, si tu le modifies dans la premiere action, reprendra son contenu d'avant dans l'action d'apres... peut etre est ce un chemin d'approche.

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    OK ! Voici mon 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
     <action path="/editFormationArtiste"
    	          type="fr.downtempo.GetFormationArtisteAction"
    			  name="formationArtisteForm"
    			  validate="false"
    			  scope="request"
    	          >
    			  <forward name="success" path="/loadFormationArtiste.do"/>
    	          <forward name="error" path="/formationArtiste.do"/>
    	  </action>
     
    	 <action path="/loadFormationArtiste"
    	          type="fr.downtempo.GetSelectLabelAction"
    			  name="formationArtisteForm"
    			  validate="false"
    			  scope="session"
    	          >
    			  <forward name="success" path="editFormationArtisteLink"/>
    	          <forward name="error" path="/formationArtiste.do"/>
    	  </action>
    Voici l'action GetFormationArtisteAction, qui recupère les info et qui alimente mon formulaire :

    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
     
     
    public class GetFormationArtisteAction extends Action{
     
    	protected ActionForm buildFormationArtisteForm(String nomFormationArtiste,ActionForm form) throws Exception{
     
    		String user = null;
    		Connection conn = null;
    		Statement stmt = null;
    		ResultSet rs = null;
     
    		FormationArtisteForm formArtForm = (FormationArtisteForm)form ; 
    		DataSource dataSource = (DataSource)servlet.getServletContext().getAttribute(Globals.DATA_SOURCE_KEY);
     
    		try{
     
    			conn = dataSource.getConnection();
    			stmt = conn.createStatement();
    			rs = stmt.executeQuery("select * from tblFormationArtiste where nomFormationArtiste=\'"+ nomFormationArtiste + "'");
     
    			if (rs.next()){
     
    				formArtForm.setNomFormationArtiste(rs.getString("nomFormationArtiste"));
    				formArtForm.setDescriptionFormationArtiste(rs.getString("descriptionFormationArtiste"));
    				formArtForm.setSiteWebFormationArtiste(rs.getString("siteWebFormationArtiste"));
    				formArtForm.setAliasFormationArtiste(rs.getString("aliasFormationArtiste"));
    							}else{
    				throw new Exception ("FormationArtiste " + nomFormationArtiste + " non trouvé !");
    			}
    		}finally{
    			if (rs != null){
    				rs.close();
    			}
    			if (stmt != null){
    				stmt.close();
    			}
    			if (conn != null){
    				conn.close();
    			}
    		}
    		return formArtForm;
    	}
     
    	public ActionForward execute(ActionMapping mapping,
    		ActionForm form,
    		HttpServletRequest request,
    		HttpServletResponse response)
    		throws IOException, ServletException {
     
    		//Cible par défaut en cas de succès
    		String target = new String("success");
     
    		if (isCancelled(request)){
     
    			//Annulation depuis la liste 
    			return (mapping.findForward(target));
    		}
     
    		try{
     
    			form = buildFormationArtisteForm(request.getParameter("nomFormationArtiste"),form);
     
    			if (form == null){
    				System.err.println("--->form est null<---");
    			}
     
    		}catch (Exception e){
    						System.err.println("--->"+e.getMessage()+"<---");
    			target = new String("error");
    			ActionMessages errors = new ActionMessages();
    			errors.add(ActionMessages.GLOBAL_MESSAGE,
    				new ActionMessage("errors.database.error", e.getMessage()));
     
    			if (!errors.isEmpty()){
    				saveErrors(request, errors);
    			}
    		}
     
    		return (mapping.findForward(target));
    	}
    }
    et voici ma deuxième action qui me permet d'alimenter la listbox de mon formulaire :

    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
     
     
    public class GetSelectLabelAction extends Action{
     
    	protected ArrayList buildSelectLabelForm() throws Exception{
     
    		String user = null;
    		Connection conn = null;
    		Statement stmt = null;
    		ResultSet rs = null;
     
    		ArrayList <Labels>labelListe;
    		DataSource dataSource = (DataSource)servlet.getServletContext().getAttribute(Globals.DATA_SOURCE_KEY);
     
    		try{
     
    			conn = dataSource.getConnection();
    			stmt = conn.createStatement();
    			rs = stmt.executeQuery("select idLabel, nomLabel from tblLabel");
     
    			labelListe = new ArrayList<Labels>();
     
    		while ( rs.next() ){ 
    			String idlabel = rs.getString("idlabel") ; 
    			String nomLabel = rs.getString("nomLabel") ; 
     
    			Labels label = new Labels() ; 
    			label.setIdLabel(idlabel) ; 
    			label.setNomLabel(nomLabel) ; 
    			labelListe.add(label) ; 
    		} 
    	}finally {
    			if (rs != null){
    				rs.close();
    			}
    			if (stmt != null){
    				stmt.close();
    			}
    			if (conn != null){
    				conn.close();
    			}
    	}
    	return labelListe;
    }
     
    	public ActionForward execute(ActionMapping mapping,
    		ActionForm form,
    		HttpServletRequest request,
    		HttpServletResponse response)
    		throws IOException, ServletException {
     
    		String target = new String("success");
     
    		if (isCancelled(request)){
    			return (mapping.findForward(target));
    		}
     
    		try{
    			ArrayList listeLabel = buildSelectLabelForm();
    			if (form == null){
    				System.err.println("--->form est null<---");
    			}else{
    				FormationArtisteForm formationArtisteForm = (FormationArtisteForm)form; 
    				formationArtisteForm.setListeLabel(listeLabel);
    			}
     
    		}catch (Exception e){
     
    			System.err.println("--->"+e.getMessage()+"<---");
    			target = new String("error");
    			ActionMessages errors = new ActionMessages();
    			errors.add(ActionMessages.GLOBAL_MESSAGE,
    				new ActionMessage("errors.database.error", e.getMessage()));
     
    			if (!errors.isEmpty()){
    				saveErrors(request, errors);
    			}
    		}
    		System.err.println("GetSelectLabel TARGET : "+target);
    		return (mapping.findForward(target));
    	}
    }
    Remarque :

    1) C deux actions sont réalisé avec succès, j'arrive a avoir les données dans les logs. Par contre, dans ma jsp je n'ai que ma listbox qui est remplis et 1 seul champ (le champ de l'id) alors que je devrais en avoir 4.

    TU pourrais me la refaire yolepro ? Si tu as des action chainée ... ???

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    Bon, j'ai mis ma fonction buildSelectLabelForm dans ma classe GetFormationArtisteAction et ça marche bien. Bon voila, vous me trouverez surement titilleur mais je trouve que ma solution contourne mon problème sans le resoudre. En effet je devrais pouvoir chainer des actions pour :

    1) avoir une meilleur reutilisation de mon code.
    2) ne pas avoir a réécrire deux fois la meme chose.

    Mon action GetSelectLabelAction etait justement la pour pouvoir etre utiliser dans tt les pages comportant une listebox des labels.
    Je souhaiterai avoir une autre solution pour ne pas réecrire cette fonction 36 fois. Le chainage d'action me semblait une bonne idée pour une application struts ... Et c la ou je voudrais savoir si je suis dans l'erreur ou pas ?

    Si je peut avoir des explications, une correction je suis prenneur


  10. #10
    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
    Salut DarkWark. Me revoilà.

    Le code te permettant d'accèder à ta base de données pour récupérer les labels, tu peux le mettre dans une classe java.
    Et dans chacune de tes actions, tu crées une instance de cette classe et tu appelles la méthode qui récupère les labels, une méthode du style getLabels qui renvoie une ArrayList.

  11. #11
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    Hello c_nvy !

    Alors pour le chainage d'action je me suis trompé, tu peux pas faire ça ? Ca me semble very strange ... Mais si tu le dit ... je ferai juste une classe !

  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
    Je n'ai pas dit que tu ne pouvais pas faire de chaînage d'actions mais dans ton cas, les deux actions ayant le même formulaire, je pense qu'effectivement, ça doit poser problème, sans doute à cause de la méthode reset().J'avoue n'avoir jamais testé !

    Par contre, je pense sincèrement qu'il est plus propre d'isoler le code te permettant de récupérer les infos de la base de données dans une classe java.
    Tu auras ainsi un composant java réutilisable.

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    ok ! G t entrain de tester ta proposition mais pour recuperer les donnees g un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataSource dataSource = (DataSource)servlet.getServletContext().getAttribute(Globals.DATA_SOURCE_KEY);
    j'utilisais servlet.getServletContext pour générer mon datasource et acceder a mes donnees. servletContext vient de l'extension de Action.

  14. #14
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Citation Envoyé par c_nvy
    Je n'ai pas dit que tu ne pouvais pas faire de chaînage d'actions mais dans ton cas, les deux actions ayant le même formulaire, je pense qu'effectivement, ça doit poser problème, sans doute à cause de la méthode reset().J'avoue n'avoir jamais testé !

    Par contre, je pense sincèrement qu'il est plus propre d'isoler le code te permettant de récupérer les infos de la base de données dans une classe java.
    Tu auras ainsi un composant java réutilisable.
    En fait le chainage n'est pas un problème mais par contre il faut mettre en le form en scope session. Hors tu ne le fais que pour le second.

  15. #15
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    Regarde mon premier post zekey, et tu verras que j'ai deja testé le scope avec session. Je pensais dailleur pouvoir resoudre mon problème comme ça mais y a u rien a faire

    Si tu as un exemple concret, je suis prenneur.

  16. #16
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    c_nvy,

    pour recupérer mes données qui vont remplir la listbox je fait un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataSource dataSource = (DataSource)servlet.getServletContext().getAttribute(Globals.DATA_SOURCE_KEY);
    je peut utiliser servlet.getServletContext car ma classe derive de la classe Action ... A partir de la si je créer un classe java et que je souhaite utiliser servlet.getServletContext j'enlève ma méthode execute ? Cela ne risque t'il pas de poser problème ?

  17. #17
    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
    Je ne suis pas spécialiste en Datasource parce que je n'utilise pas mais j'ai trouvé ce post qui peut t'aider.

  18. #18
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Désolé j'avais mal compris, pour me faire pardonner voici un exemple qui marche, je viens de le tester. C'est pas pour prendre exemple c'est très laid et tout est en dur et je l'ai pondu en 2min mais ca devrait te donner une piste.

    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
    24
    25
     
    ...
      <action-mappings >
        <action
          attribute="displayFormForm"
          input="/form/displayForm.jsp"
          name="displayFormForm"
          path="/displayFormStep1"
          scope="request"
          type="com.yourcompany.struts.action.DisplayFormStep1Action" >
          <forward name="success" path="/displayFormStep2.do" />
        </action>
     
        <action
          attribute="displayFormForm"
          name="displayFormForm"
          path="/displayFormStep2"
          scope="request"
          type="com.yourcompany.struts.action.DisplayFormStep2Action" >
          <forward name="success" path="/form/displayForm.jsp" />
        </action>
     
     
      </action-mappings>
    ...
    displayForm.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
     
     
    <%@ page language="java"%>
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%> 
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
     
    <html> 
    	<head>
    		<title>JSP for displayFormForm form</title>
    	</head>
    	<body>
    		<html:form action="/displayFormStep2">
    			field1 : <html:text property="field1"/><html:errors property="field1"/><br/>
    			field2 : <html:text property="field2"/><html:errors property="field2"/><br/>
    			field3 : <html:text property="field3"/><html:errors property="field3"/><br/>
    			field4 : <html:text property="field4"/><html:errors property="field4"/><br/>
    			id : <html:text property="id"/><html:errors property="id"/><br/>
    			<html:submit/><html:cancel/>
    		</html:form>
    	</body>
    </html>

    DisplayFormStep1Action.java
    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
     
    //Created by MyEclipse Struts
    // XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.0.0/xslt/JavaClass.xsl
     
    package com.yourcompany.struts.action;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import com.yourcompany.struts.form.DisplayFormForm;
     
    /** 
     * MyEclipse Struts
     * Creation date: 02-22-2006
     * 
     * XDoclet definition:
     * @struts.action path="/displayForm" name="displayFormForm" input="/form/displayForm.jsp" scope="request" validate="true"
     */
    public class DisplayFormStep1Action extends Action {
     
    	// --------------------------------------------------------- Instance Variables
     
    	// --------------------------------------------------------- Methods
     
    	/** 
             * Method execute
             * @param mapping
             * @param form
             * @param request
             * @param response
             * @return ActionForward
             */
    	public ActionForward execute(
    		ActionMapping mapping,
    		ActionForm form,
    		HttpServletRequest request,
    		HttpServletResponse response) {
    		DisplayFormForm displayFormForm = (DisplayFormForm) form;
     
    displayFormForm.setField1("field1");
    displayFormForm.setField2("field2");
    displayFormForm.setField3("field3");
     
     
    		return mapping.findForward("success");
    	}
     
    }
    DisplayFormStep2Action.java
    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
     
    //Created by MyEclipse Struts
    // XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.0.0/xslt/JavaClass.xsl
     
    package com.yourcompany.struts.action;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import com.yourcompany.struts.form.DisplayFormForm;
     
    /** 
     * MyEclipse Struts
     * Creation date: 02-22-2006
     * 
     * XDoclet definition:
     * @struts.action path="/displayFormStep2" name="displayFormForm" scope="request" validate="true"
     */
    public class DisplayFormStep2Action extends Action {
     
    	// --------------------------------------------------------- Instance Variables
     
    	// --------------------------------------------------------- Methods
     
    	/** 
             * Method execute
             * @param mapping
             * @param form
             * @param request
             * @param response
             * @return ActionForward
             */
    	public ActionForward execute(
    		ActionMapping mapping,
    		ActionForm form,
    		HttpServletRequest request,
    		HttpServletResponse response) {
    		DisplayFormForm displayFormForm = (DisplayFormForm) form;
     
    		displayFormForm.setField4("field4");
    		displayFormForm.setId("field5");
     
    		return mapping.findForward("success");
    	}
     
    }

    Le form est initialisé en deux fois sans perte de données.
    J'espère que j'ai bien compris cette fois

  19. #19
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 163
    Points : 88
    Points
    88
    Par défaut
    iop zekey, je suis sur ton exemple. Tu le prend ou ton DisplayFormForm ... Y a pas un bean qui traine dans ton exemple ?

  20. #20
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Citation Envoyé par DarkWark
    iop zekey, je suis sur ton exemple. Tu le prend ou ton DisplayFormForm ... Y a pas un bean qui traine dans ton exemple ?
    Si mais je voulais economiser du post

    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
     
     
    public class DisplayFormForm extends ActionForm {
     
    	// --------------------------------------------------------- Instance Variables
     
    	/** field4 property */
    	private String field4;
     
    	/** field1 property */
    	private String field1;
     
    	/** field2 property */
    	private String field2;
     
    	/** field3 property */
    	private String field3;
     
    	/** id property */
    	private String id;
     
    	// --------------------------------------------------------- Methods
     
    	/** 
             * Method validate
             * @param mapping
             * @param request
             * @return ActionErrors
             */
    	public ActionErrors validate(
    		ActionMapping mapping,
    		HttpServletRequest request) {
     
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    	/** 
             * Method reset
             * @param mapping
             * @param request
             */
    	public void reset(ActionMapping mapping, HttpServletRequest request) {
     
    		// TODO Auto-generated method stub
    	}
     
    	/** 
             * Returns the field4.
             * @return String
             */
    	public String getField4() {
    		return field4;
    	}
     
    	/** 
             * Set the field4.
             * @param field4 The field4 to set
             */
    	public void setField4(String field4) {
    		this.field4 = field4;
    	}
     
    	/** 
             * Returns the field1.
             * @return String
             */
    	public String getField1() {
    		return field1;
    	}
     
    	/** 
             * Set the field1.
             * @param field1 The field1 to set
             */
    	public void setField1(String field1) {
    		this.field1 = field1;
    	}
     
    	/** 
             * Returns the field2.
             * @return String
             */
    	public String getField2() {
    		return field2;
    	}
     
    	/** 
             * Set the field2.
             * @param field2 The field2 to set
             */
    	public void setField2(String field2) {
    		this.field2 = field2;
    	}
     
    	/** 
             * Returns the field3.
             * @return String
             */
    	public String getField3() {
    		return field3;
    	}
     
    	/** 
             * Set the field3.
             * @param field3 The field3 to set
             */
    	public void setField3(String field3) {
    		this.field3 = field3;
    	}
     
    	/** 
             * Returns the id.
             * @return String
             */
    	public String getId() {
    		return id;
    	}
     
    	/** 
             * Set the id.
             * @param id The id to set
             */
    	public void setId(String id) {
    		this.id = id;
    	}
     
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 12
    Dernier message: 01/07/2004, 11h03
  2. [EJB2.1 Entity] [BMP] [Struts] Problème avec <logic:iterate>
    Par romain3395 dans le forum Java EE
    Réponses: 2
    Dernier message: 07/06/2004, 10h12
  3. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  4. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49
  5. [Struts] Problème de formulaire(s) ...
    Par djoukit dans le forum Struts 1
    Réponses: 8
    Dernier message: 10/03/2004, 23h48

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