2009-09-15 7 views
1

Comment puis-je obtenir la liaison de données Grails pour lier correctement les objets référencés (comme Pays dans l'exemple ci-dessous)?Grails forme la liaison de données lorsqu'un autre objet de domaine est référencé dans le formulaire

Compte tenu des deux classes de domaine Grails suivantes ..

class User { 
    String username 
    Country country 
} 

class Country { 
    String name 
} 

.. et le formulaire HTML suivant ..

<g:form>

<g:textField name="user.username" value="${user.username}" />

<g:select name="user.country" from="${Country.list()}" optionKey="id" />

</g:form>

.. et le code suivant dans l'action correspondante ..

User user = new User(params["user"]) 

.. J'aurais espéré que user.username et user.country obtiendrait bind. Cependant, il semble que username.username soit lié, alors que user.country ne l'est pas. Quelle est la syntaxe correcte pour lier des objets référencés (user.country dans cet exemple)?

Répondre

5

La liaison de la propriété "du pays" commence à travailler si ..

<g:select name="user.country" from="${Country.list()}" optionKey="id" /> 

.. est changé en ..

<g:select name="user.country.id" from="${Country.list()}" optionKey="id" /> 
0

Vous devriez aussi regarder des objets de commande. Ils peuvent valider et lier tous vos paramètres à la fois.

Questions connexes