Est-il possible d'ajouter/mettre à jour plusieurs instances à la fois? Par exemple, nous avons un livre de classe de domaine avec bname, tile. Dans le fichier gsp, nous montrons un formulaire avec plusieurs noms de fichiers bname et title. Quelqu'un pourrait-il me laisser savoir comment écrire un crteate/modifier les actions?multi créer/modifier dans grails
Répondre
c'est possible. Vous devez créer des pages bulkCreate/bulkUpdate avec les méthodes de contrôleur et de service appropriées. Il n'y a rien pour vous empêcher de faire quelque chose comme ce qui suit dans un service:
def book1 = new Book(bname1, btitle1)
def book2 = new Book(bname2, btitle2)
book1.save()
book2.save()
Vous avez probablement besoin de validation là-dedans. bname1 etc. sont les paramètres que vous définissez dans votre formulaire.
utilisé le code ci-dessus dans une boucle et ont été en mesure d'ajouter/mettre à jour des enregistrements avec succès
for (i in 0..booksSize) { def book1 = new Livre (bname1, btitle1) if (! Book1 .save()) { flash.message = « erreur msg » }}
S'il y a des lignes avec des erreurs/données non valides comment afficher l'utilisateur les données saisies ainsi que les erreurs de suite/gsp? D'en haut, je ne reçois que la dernière erreur.
Je sais que c'est quelques années mais j'ai pensé que j'ajouterais une réponse mise à jour à cette question commune.
Grails fournit quelques outils pratiques pour permettre des mises à jour multi-enregistrements à l'aide des objets de commande, ListUtils et FactoryUtils.
Voici un exemple qui pourrait être utilisé pour enregistrer les entrées de décalage de carte de temps multiples:
class ShiftEntryListCommand {
List<ShiftEntryCommand> entries = ListUtils.lazyList(
new ArrayList(), FactoryUtils.instantiateFactory(ShiftEntryCommand)
)
}
class ShiftEntryCommand {
BigDecimal totalHours
Date date
String projectName
static constraints = {
totalHours (blank: false, min: 0.00, max: 24.00, matches: /^someRegex$/)
date (blank: false, matches: /^someRegex$/)
projectName (nullable: true, blank: true, matches: /^someRegex$/)
}
}
Vous créez essentiellement deux objets de commande. Un pour l'instance unique des données de formulaire, l'autre pour la liste des instances uniques. L'objet de commande list utilise ListUtils et FactoryUtils pour traiter l'entrée de formulaire "bulk" et chaque instance unique est toujours validée avec les contraintes.
Vous devez importer les ListUtils et FactoryUtils de la collection communes apache:
import org.apache.commons.collections.FactoryUtils
import org.apache.commons.collections.ListUtils
Il serait utilisé dans une action comme celle-ci:
def save(ShiftEntryListCommand cmd) {
//other action code follows ...
}
Maintenant toutes les données sous forme de vrac vient à la méthode de sauvegarde est traitée et validée par les objets de commande. Pour enregistrer les enregistrements, vous pouvez parcourir la liste et appeler le save()
sur chacun d'eux ou utiliser une méthode Hybernate pour les insertions en masse. Dans notre cas, nous avons choisi de faire défiler chaque enregistrement. Pas certain de pourquoi.
Espérons que quelqu'un trouve cela utile.
- 1. Problème de validation Grails sur une association multi-domaine?
- 2. Erreur dans Grails
- 3. MappedSuperclass Alternatives dans Grails
- 4. Postback Javascript dans Grails
- 5. Redimensionner l'image dans Grails
- 6. exception Log4j dans Grails
- 7. Config.groovy dans Grails: environments.production.grails.serverURL
- 8. Documentation dans les grails
- 9. récursivité dans groovy (grails)
- 10. Générer l'URL dans Grails
- 11. Groovlet dans Grails apps
- 12. JMS MessageCreator.createMessage() dans Grails
- 13. javascript dans grails paginate
- 14. Y compris Grails Plugin Source dans Grails 1.3.5 projet
- 15. Mixins multi-imbriqués et multi-blocs dans lessphp
- 16. Intégration de projet dans Grails
- 17. Fonctionnalité RenderAction-/Cell dans Grails
- 18. problème dans imagemagick et grails
- 19. Plusieurs associations dans les grails
- 20. Expériences utilisant Groovy ++ dans Grails
- 21. problème avec JSON dans Grails
- 22. Requête d'insertion HQL dans Grails
- 23. variables de requête dans Grails
- 24. Dojo Fisheye dans l'application Grails
- 25. dans le projet Grails. Problème
- 26. ArrayList et carte dans Grails
- 27. protection mélodie grails avec filtre de grails
- 28. Grails: Grails au niveau de l'entreprise
- 29. formes multi-page dans Rails
- 30. Selectors Multi-conditionnel dans jQuery
Merci hvgotcodes – Honey