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 :

Pb : Passage de paramètre JSP->Action


Sujet :

Struts 1 Java

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut Pb : Passage de paramètre JSP->Action
    Bonjour,

    J'affiche une liste de voiture avec un lien pour ajouter au panier la voiture choisie, le soucis c'est que je n'arrive pas à passer le parametre 'id' de l'objet Voiture pour le récupérer dans mon Action via l'ActionForm.
    Je sèche, comment faire?

    voici le code de ma jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	<table>
    		<logic:iterate id="idListeVoiture" name="listVoiture">		
    		<tr>
    			<td><html-el:img src="${idListeVoiture.photo}" height="100" width="130"/></td>
    			<td>
    					<bean:write name="idListeVoiture" property="marque"/><br>
    					<bean:write name="idListeVoiture" property="marque"/><br>
    					<bean:write name="idListeVoiture" property="modele"/><br>
    					<html:link action="/ajoutVoiturePanier">Ajouter à mon panier</html:link>	
    			</td>
    		</tr>
    		</logic:iterate>
    	</table>
    le code de mon actionForm :
    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
    public class VoiturePanierForm extends ActionForm {
    	/**
             * 
             */
    	private static final long serialVersionUID = -4079174554991008809L;
    	private String id;
     
    	public String getId() {
    		return id;
    	}
     
    	public void setId(String id) {
    		this.id = id;
    	}
     
    }
    et de mon Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class AjoutVoiturePanier extends Action {
    	public ActionForward execute(ActionMapping mapping,ActionForm form, 
    			HttpServletRequest request, 
    			HttpServletResponse response) throws Exception{
     
    		VoiturePanierForm voitureForm= (VoiturePanierForm) form;
    		String idVoiture = voitureForm.getId();
                   (...)

  2. #2
    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 suffit d'utiliser les attributs paramName, paramProperty et paramId du tag html:link comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <table>
    	<logic:iterate id="idListeVoiture" name="listVoiture">		
    	<tr>
    		<td><html-el:img src="${idListeVoiture.photo}" height="100" width="130"/></td>
    		<td>
    			<bean:write name="idListeVoiture" property="marque"/><br>
    			<bean:write name="idListeVoiture" property="marque"/><br>
    			<bean:write name="idListeVoiture" property="modele"/><br>
    			<html:link action="/ajoutVoiturePanier" paramName="idListeVoiture" paramProperty="id" paramId="id">Ajouter à mon panier</html:link>	
    		</td>
    	</tr>
    	</logic:iterate>
    </table>
    Dans le code précédent, j'ai supposé que la propriété de l'objet Voiture contenant l'id était id. Si ce n'est pas le cas, il faut modifier la valeur de paramProperty en conséquence.

    Ensuite, dans l'Action de path /ajoutVoiturePanier, pour récupérer l'id passé en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String id=request.getParameter("id") ;

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Ok , merci!!
    En fait mon actionForm ne sert à rien?
    L'utilité d'un actionForm intervient uniquement dans le cadre d'un formulaire?

  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
    Lorsque tu cliques sur un lien, il n'y a pas de soumission de formulaire.
    Donc, l'ActionForm ne sert effectivement à rien.

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    Ok merci.
    Question qui survient suite à la correction de ce problème :
    Quand je clique sur Ajouter a mon panier, dans l'url je vois en sortie: Le problème c'est que si je fait actualiser la page il m'ajoute autant de fois la voiture id=3 que de fois où je clique sur Actualiser. Forcément...
    Comment remédier à ce petit désagrément?

  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
    Dans le struts-config.xml, dans le mapping de l'Action de path /ajoutVoiturePanier et plus précisément dans le forward, ajoute redirect="true".

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    merci!

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    bonjour,
    dans le cas d'un link ok, est ce que vous saver comment faire dans le cas d'un botton ( par exemple supprimer un enregistrement d'une liste)

    merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/07/2009, 10h20
  2. pb étonnant passage paramètres jsp action
    Par Melaba dans le forum Struts 1
    Réponses: 1
    Dernier message: 06/08/2008, 11h13
  3. [JSP]Pb passage de paramètres formulaire
    Par arnapou dans le forum Servlets/JSP
    Réponses: 21
    Dernier message: 12/07/2006, 15h21
  4. [jsp] passage de paramètres impossible
    Par Raylemon dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 18/03/2005, 20h45
  5. [jsp][servlet]passage de paramètre entre deux frames
    Par alexandra_ape dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 29/06/2004, 11h14

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