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

Spring Web Java Discussion :

Binding List dans une JSP [@MVC]


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Par défaut Binding List dans une JSP
    Bonjour, je n'arrive pas a binder une liste, voila ce que je voudrais faire :

    Mon controller transmet a la JSP une liste de 2 String, que j'affiche dans des input text. Je voudrais qu'apres mon submit je retrouve ma liste dans mon controller.

    ma Jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form action="refresh" method="get">
    <table>
    	<tr>
    		<td><input type="text" value="${listTest[0] }" name="listTest[0]" /></td>
    	</tr>
    	<tr>
    		<td><input type="text" value="${listTest[1] }" name="listTest[1]" /></td>
    	</tr>
     
    </table>
    <input type="submit" value = "Valider" />
    </form>
    mon controller :
    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
    @Controller
    public class TestController2 {
    
    	@RequestMapping(value = "/test", method = RequestMethod.GET)
    	public String init(ModelMap model) {
    		ArrayList<String> listTest = new ArrayList<String>();
    		listTest.add("toto");
    		listTest.add("tutu");
    		model.addAttribute("listTest", listTest);
    		return "test";
    	}
    
    	@RequestMapping(value = "/refresh", method = RequestMethod.GET)
    	public String refresh(@ModelAttribute ArrayList<String> listTest,
    			ModelMap model) {
    
    		model.addAttribute("listTest", listTest);
    		return "test";
    	}
    }
    Actuellement je récupère une liste vide dans mon controller.
    une idée de ce que j'ai mal fait ?

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 141
    Par défaut
    C'est tout à fait normal que t'as une réponse vide. Il faut que fasse un c:foreach par exemple avec ta liste pour ajouter les variable. mais ce que je comprends pas comme tu envoies tes données par get, pour tu récupères pas tes données en requestParam?Tu te compliques un peu la vie à mon avis. Tu peux tout simplement créer un objet model comme ça t'as un model attribute mais après c'est toi vois avec ce que t'as à faire.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Par défaut
    Problème résolu, avec une liste, puis avec une map (d'ailleurs les map ca ne fonctionne pas avec spring 3.0.5, bug connu) :

    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
    	@RequestMapping(value = "/test", method = RequestMethod.GET)
    	public String init(ModelMap model) {
    		Person personne = new Person();
     
    		HashMap<Long,Information> listTest = new HashMap<Long,Information>();
    		Information i1 = new Information();
    		Information i2 = new Information();
    		i1.setValue("titi");
    		i2.setValue("tata");
    		listTest.put(new Long(1), i1);
    		listTest.put(new Long(2), i2);
    		personne.setTutu(listTest);
    		model.addAttribute("personne", personne);
    		return "test";
    	}
     
    	@RequestMapping(value = "/refresh", method = RequestMethod.GET )
    	public String refresh(@ModelAttribute Person toto, ModelMap model) {
    		model.addAttribute("toto", toto);
    		return "test";
    	}
    ma jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form action="refresh" method="get" modelAttribute="Toto" >
    <table>
    	<tr>
    		<td><input type="text" value="${personne.infos[1].value }" name="infos[1].value" /></td>
    	</tr>
    	<tr>
    		<td><input type="text" value="${personne.infos[2].value }" name="infos[2].value" /></td>
    	</tr>
    </table>
    <input type="submit" value = "Valider" />
    </form>
    Mapping étrange j'aurai mis name="personne.infos[2].value" au lieu de name="infos[2].value"

    et mes POJO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class Person {
     
    	private HashMap<Long, Information> infos;
    .. }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class Information {
     
    	private String value;
    ...
     
    }

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

Discussions similaires

  1. afficher une liste dans une JSP
    Par sheridan08 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/05/2013, 15h05
  2. [MVC] gerer liste dans une JSP
    Par souf_87 dans le forum Spring Web
    Réponses: 0
    Dernier message: 11/07/2011, 16h39
  3. probleme d'affichage d'une liste dans une jsp
    Par the_first_001 dans le forum Struts 1
    Réponses: 5
    Dernier message: 20/04/2009, 14h44
  4. Réponses: 4
    Dernier message: 03/06/2008, 18h20
  5. Affichage d'une liste dans une JSP
    Par KristofNancy dans le forum Struts 1
    Réponses: 5
    Dernier message: 23/01/2008, 14h13

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