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 :

Valeur dynamique dans le champ value des formulaires


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 143
    Points : 69
    Points
    69
    Par défaut Valeur dynamique dans le champ value des formulaires
    Bonjour à tous, voilà mon problème qui est plus une question générale. Je n'ai pas trop trouvé ce que je voulais donc je vous demande de l'aide.

    J'ai un formulaire que je rempli et valide qui me sert à créer une "tournée" (c'est un projet spécifique en recherche opérationnelle donc je préfère rester général)

    Il est également possible de modifier ces "tournées" donc j'aimerais utiliser le même formulaire qui sera pré-rempli mais en mettant les valeurs récuperées dans le champ value, quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:text property="dateEchue" value="<bean write etc...>"/>
    mais j'ai lu que ce n'était pas possible, donc ma question est, quelle est la méthode pour faire ce genre de chose. Cela ne sert à rien que je vous donne du code, je bloque juste sur la façon de faire.

    merci de votre aide !!!

  2. #2
    Expert éminent sénior


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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonjour,

    en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:text property="dateEchue"/>
    la valeur de l'attribut dateEchue de ton ActionForm sera lue pour remplir ton formulaire.
    Si tu initialises la valeur, elle devrait donc s'afficher.

    Essaye d'en dire davantage si ce n'est pas ca ...

    Eric

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 143
    Points : 69
    Points
    69
    Par défaut
    d'accord avec toi, j'ai également lu ça quelque part. Comment j'initialise et transmet la valeur depuis l'ActionForm associé ?

    en faisant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("dateEchue", trip_modif.getdateEchue());
    j'ai la nette impression que c'est pas ça du tout, mais je suis un peu perdu avec struts mais une fois que je saurais faire ça, ça va rouler...

    merci !

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 143
    Points : 69
    Points
    69
    Par défaut
    Finalement j'ai réussi, en procédant comme ça

    dans mon action

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	request.setAttribute("trip_modif", trip_modif);

    dans la jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<html:text name="trip_modif" property="dateEchue"/>
    maintenant il faut que je vois pour séparer efficacement le mode creation et modification, car le formulaire ne marche pas quand je veux créer (normal)

  5. #5
    Expert éminent sénior


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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Quel est le type de trip_modif ?

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 143
    Points : 69
    Points
    69
    Par défaut
    C'est une instance de la classe TripForm qui hérite de la classe ActionForm

  7. #7
    Expert éminent sénior


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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Pourquoi la mettre en request toi même alors que Struts doit bien le faire si tu as correctement défini ton mapping ?

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 143
    Points : 69
    Points
    69
    Par défaut
    Alors là je dois dire que je n'en sais rien. Nous sommes une équipe de 7 personnes, je m'occupe uniquement de la couche métier de l'appli, donc je ne gère pas le mapping hibernate. En tout cas, j'ai testé sans cette instruction et ça ne marche pas.

    Ce qui m'ennuie le plus, c'est qu'avec cette méthode je suis obligé de 2 formulaires, 1 pour le mode création, où les tags non pas d'attribut name et 1 pour le mode modification car l'attribut name permet d'accéder au bean, enfin d'après ce que j'ai compris, mais je pense qu'il y a une méthode beaucoup plus efficace

  9. #9
    Expert éminent sénior


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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Citation Envoyé par djalouk
    mapping hibernate
    Struts

    Le problème est qu'avec seulement une ligne de code isolée, on ne va pas pouvoir t'aider.

  10. #10
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 143
    Points : 69
    Points
    69
    Par défaut
    Alors voila les portions de code utiles

    donc en gros on accède directement au formulaire depuis le lien créer.
    Le lien modifier / supprimer renvoie vers la liste des trips d'une personne (à coté il y a 2 boutons et un champ hidden pour connaitre l'id) et ainsi soit supprimer soit accéder au fameux formulaire pré-rempli.

    Dans le fichier menu.jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!-- Menu pour le gestionnaire des trips -->
    				<li>Trips :</li>
    					<ul>
    						<li><html:link action="/ajoutTrip">Cr&eacute;er</html:link></li>
    						<li><html:link action="/gestionTrip">modifier / supprimer</html:link></li>
    le formulaire qui normalement devrait servir pour la création mais aussi pour la modification
    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
    <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
    <%@ taglib uri="/tags/struts-html" prefix="html" %>
    <%@ taglib uri="/tags/struts-logic" prefix="logic" %>
    <%@ taglib uri="/tags/struts-tiles" prefix="tiles" %>
     
    <html>
        <head>
            <title>Bourse de transport - Fiche de trip</title>
            <link rel="stylesheet" type="text/css" href="/style.css"  media="all" />
        </head>
        <body>
        	<div id="header">    	
        		<h1>Bourse de transport</h1>
        	</div>
     
    		<div id="gauche">
    			<%@ include file="/pages/menu.jsp" %>
    		</div>
     
    		<div id="droite">
            <h1>Informations sur le trip</h1>     	
            	<html:errors/>
     
    	            <html:form action="/ajoutTripSuccess" method="POST">
     
               		 <table>
                		<tr>
                    		<td>Date &eacute;chue :</td>
                    		<td><html:text property="dateEchue"/></td>
                   		 <tr>
                    		<td>Dur&eacute;e :</td>
                    		<td><html:text property="dureeTripDemiHeure"/></td>
                    	</tr>
                		<tr>
                    		<td>Gabarit :</td>
                    		<td>
                    		<html:select property="gabarit" size="1">
    								<html:option value="G1">G1</html:option>
    								<html:option value="G2">G2</html:option>
    								<html:option value="G3">G3</html:option>
                    			</html:select>
                    		</td>
                    	</tr>
                    	<tr>
                    		<td>PTAC :</td>
                    		<td><html:select property="ptac" size="1">
    								<html:option value="P1">P1</html:option>
    								<html:option value="P2">P2</html:option>
    								<html:option value="P3">P3</html:option>
                    			</html:select></td>
                    	</tr>
                   		 <tr>
                    		<td>Grue :</td>
                    		<td><html:checkbox property="grue" /></td>
                    	</tr>            		
                   		 <tr>         
                    		<td>Manitou :</td>
                    		<td><html:checkbox property="manitou" /></td>
                    	</tr>            		
                    	<tr>
                    		<td>Profit g&eacute;n&eacute;r&eacute; :</td>
                    		<td><html:text property="profitGenere" /></td>
                    	</tr>                
    	    		</table>
    	    		<p><html:submit property="submit" />&nbsp;&nbsp;&nbsp;<html:reset property="reset" /></p>
    	    	</html:form>
            </div>
        </body>
    </html>

    le bean
    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
    package projet.ili.trip;
     
     
    import hibernate.trip.TripManager;
    import hibernate.utilisateur.UtilisateurManager;
     
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    import org.apache.struts.action.*;
    import trip.Trip;
     
    public class TripForm extends ActionForm {
     
    	private boolean vehiculeAffecte;
    	private String login;
    	private int profitGenere;
    	private int dureeTripDemiHeure;
    	private Date dateEchue;
    	private int id_trip;
    	private String gabarit;
    	private String ptac;
    	private boolean grue;
    	private boolean manitou;
     
    	public Date getDateEchue() {
    		return dateEchue;
    	}	
    	public static Date stringToDate(String sDate, String sFormat) throws Exception {
            SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
            return sdf.parse(sDate);
    	}	
    	public void setDateEchue(String dateEchue) throws Exception  {
    		this.dateEchue =stringToDate(dateEchue, "yyyy-MM-dd");
    	}
    	public int getDureeTripDemiHeure() {
    		return dureeTripDemiHeure;
    	}
    	public void setDureeTripDemiHeure(int dureeTripDemiHeure) {
    		this.dureeTripDemiHeure = dureeTripDemiHeure;
    	}
    	public String getGabarit() {
    		return gabarit;
    	}
    	public void setGabarit(String gabarit) {
    		this.gabarit = gabarit;
    	}
    	public boolean isGrue() {
    		return grue;
    	}
    	public void setGrue(boolean grue) {
    		this.grue = grue;
    	}
    	public int getId_trip() {
    		return id_trip;
    	}
    	public void setId_trip(int id_trip) {
    		this.id_trip = id_trip;
    	}
    	public String getLogin() {
    		return login;
    	}
    	public void setLogin(String login) {
    		this.login = login;
    	}
    	public boolean isManitou() {
    		return manitou;
    	}
    	public void setManitou(boolean manitou) {
    		this.manitou = manitou;
    	}
    	public int getProfitGenere() {
    		return profitGenere;
    	}
    	public void setProfitGenere(int profitGenere) {
    		this.profitGenere = profitGenere;
    	}
    	public String getPtac() {
    		return ptac;
    	}
    	public void setPtac(String ptac) {
    		this.ptac = ptac;
    	}
    	public boolean isVehiculeAffecte() {
    		return vehiculeAffecte;
    	}
    	public void setVehiculeAffecte(boolean vehiculeAffecte) {
    		this.vehiculeAffecte = vehiculeAffecte;
    	}
     
    	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
     
    		ActionErrors errors = new ActionErrors();
    		return errors;
    	}
     
    	public void clone(Trip trip){
    		this.id_trip = trip.getId_trip();
    		this.dateEchue = (Date)trip.getDateEchue().clone();
    		this.dureeTripDemiHeure = trip.getDureeTripDemiHeure();
    		this.gabarit = trip.getCaracteristique().getGabarit();
    		this.ptac = trip.getCaracteristique().getPtac();
    		this.grue = trip.getCaracteristique().isGrue();
    		this.manitou = trip.getCaracteristique().isManitou();
    		this.profitGenere = trip.getProfitGenere();		
    	}	
    }

    l'action
    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 projet.ili.trip;
     
    import hibernate.trip.TripManager;
     
    import javax.servlet.http.*;
     
    import org.apache.struts.action.*;
     
    import projet.ili.trip.TripForm;
    import trip.Trip;
     
    public class ModifTripAction extends Action {
     
    	public ActionForward execute(ActionMapping mapping, ActionForm _form,
    			HttpServletRequest request, HttpServletResponse response
    	) throws Exception {
     
    		Trip temp= null;
    		// on récupère le trip à modifier 
    		if((request.getParameter("id_trip")) != "")
    			temp= TripManager.rechercheParID(Integer.parseInt(request.getParameter("id_trip")));
    		TripForm trip_modif = new TripForm();
    		if (temp!=null){ 
    			trip_modif.clone(temp);
    		}		
    		// transmission à la page 
    		request.setAttribute("trip_modif", trip_modif);		
    		return mapping.findForward("modifTrip");
    	}
     
     
    }

  11. #11
    Expert éminent sénior


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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    L'erreur est là dans l'Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TripForm trip_modif = new TripForm();
    Tu dois récuperer le form passé dans l'appel de la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TripForm trip_modif = (TripForm) _form;

  12. #12
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 143
    Points : 69
    Points
    69
    Par défaut
    Au nom de toute l'équipe chargée de la couche métier qui cravache en ce moment même dans la salle informatique de notre école, nous te remercions !!!

  13. #13
    Expert éminent sénior


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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Citation Envoyé par djalouk
    en ce moment même dans la salle informatique de notre école


    Plus qu'un ultime effort pour
    Bon courage

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/05/2009, 13h09
  2. Réponses: 2
    Dernier message: 22/05/2007, 16h15
  3. Réponses: 1
    Dernier message: 13/03/2007, 09h52
  4. Réponses: 4
    Dernier message: 30/08/2006, 03h23
  5. Réponses: 7
    Dernier message: 24/08/2006, 15h43

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