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 :

Spring, formulaire, et relation one-to-many [MVC]


Sujet :

Spring Web Java

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Points : 110
    Points
    110
    Par défaut Spring, formulaire, et relation one-to-many
    Bonjour à tous,

    Je reviens avec un nouveau problème : je n'arrive pas à développer un formulaire avec Spring pour créer un objet avec une relation one-to-many sur un autre objet.

    J'ai une classe Account qui possède une propriété Group :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @Entity
    @Table(name="account")
    public class Account implements Serializable {
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	private int id;
    	//...
    	@ManyToOne
    	@JoinColumn(name="group_id")
    	private Group group;
    	//...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @Entity
    @Table(name="usergroup")
    public class Group {
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	private int id;
    	@Column
    	private String name;
    	//...
    }
    Dans mon formulaire de création de comptes, j'ai entre-autre une combo-box qui permet de sélectionner le groupe pour le compte en cours de création. Cette combobox s'affiche correctement.
    Par contre lorsque je soumets le formulaire, j'ai une exception SQL me disant "Le champ 'group_id' ne peut être vide (null)", alors que j'ai correctement sélectionné le groupe dans le formulaire...

    Comment matérialiser cette relation ?
    Voici 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    @Controller
    @RequestMapping("/admin")
    public class AdminController {
    	//...
    	@RequestMapping(value="/accounts/new/", method=RequestMethod.GET)
    	public ModelAndView showNewAccountForm(){
    		// Instantiate the model
    		Map<String, Object> model = 
    			new HashMap<String, Object>();
     
    		// Call the service
    		List<Group> groupList = this.userSvc.findAllGroups();
     
    		// Populate the model
    		model.put("groupList", groupList);
     
    		// Create the ModelAndView
    		ModelAndView modelAndView = new ModelAndView("admin_account_management_view");
    		modelAndView.addAllObjects(model);
     
    		// Return the ModelAndView
    		return modelAndView;
    	}
     
    	@RequestMapping(value="/accounts/new/", method=RequestMethod.POST)
    	public ModelAndView submitNewAccountForm(
    			@ModelAttribute("accountForm") Account account,
    			BindingResult bindingResult) throws Exception{
     
    		this.userSvc.createAccount(account);
     
    		return new ModelAndView("redirect:/accounts/" + account.getId() + "/");
    	}
    	//...
    }
    Et voici ma combo-box JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form:select path="group" 
    	items="${groupList}"
    	itemValue="id" 
    	itemLabel="name" 
    	multiple="false"/>
    Je ne vois pas comment résoudre ce problème

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Points : 110
    Points
    110
    Par défaut
    J'ai résolu mon problème en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form:select path="group" 
    	items="${groupList}"
    	itemValue="id" 
    	itemLabel="name" 
    	multiple="false"/>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form:select path="group.id"
    	items="${groupList}"
    	itemValue="id" 
    	itemLabel="name" 
    	multiple="false"/>

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

Discussions similaires

  1. Relation one-to-many qui ne se crée pas
    Par Julien G dans le forum Hibernate
    Réponses: 4
    Dernier message: 01/08/2007, 18h02
  2. Réponses: 4
    Dernier message: 18/06/2007, 08h30
  3. [Hibernate] Relation one to many
    Par BRAUKRIS dans le forum Hibernate
    Réponses: 2
    Dernier message: 23/08/2006, 11h51
  4. [hibernate] relation one-to-many avec plusieurs clés
    Par seb_fou dans le forum Hibernate
    Réponses: 6
    Dernier message: 16/03/2006, 14h47
  5. [EJB2.1 Entity] [CMR] Relation One to Many
    Par hamed dans le forum Java EE
    Réponses: 2
    Dernier message: 31/12/2003, 14h26

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