J'ai une classe Person
avec deux propriétés: name
et address
. Je veux créer une page GSP qui permet de créer 10 utilisateurs à la fois. Voici comment je l'implémente et je me demandais s'il y avait une meilleure façon:Comment créer plusieurs objets de domaine à partir d'une page GSP
D'abord, faites 20 zones de texte dans la page GSP - 10 avec someperson.name
et 10 avec someperson.address
noms de champs (faites-les dans une boucle ou un code tous individuellement, peu importe).
Ensuite, traitez les données soumises dans le contrôleur. L'objet someperson
a les données soumises, mais dans une structure pas si belle ([name: ['Bob', 'John'], address: ['Address 1', 'Address 2']]
), donc j'appelle le transpose()
pour pouvoir accéder aux paires , address
.
Ensuite, créez une liste d'objets Person
en utilisant les paires obtenues à l'étape précédente et validez/enregistrez-les.
Enfin, si la validation échoue (name
ne peut pas être null
) alors faites quelque chose ... ne sais pas encore! Je pense à passer la collection des objets Person
au GSP où ils sont itérés en utilisant une boucle et si hasErrors
puis les montrer ... Ne sait pas comment mettre en évidence les champs qui ont échoué validation ...
Ainsi , y a-t-il un meilleur moyen (je devrais probablement demander QUEL EST le meilleur moyen)?
Comment Grails sait-il lier 'personne' de la requête à l'objet de commande? Je m'attendrais à ce que les paramètres soient requis en tant que 'people [0] .name = bob' – zoran119
Je continue d'obtenir' Erreur lors de la création de l'objet de commande.'et' Message d'exception: Index: 1, Taille: 0' avec ce code http://pastie.org/2951846 Une idée pourquoi? – zoran119
jeter un oeil à la réponse à cette question http://stackoverflow.com/questions/5677623/grails-command-object-data-binding –