Je me demandais si quelqu'un avait une idée de la meilleure façon de fournir la fonctionnalité de bindData() en dehors de mes contrôleurs grails. Dans mon projet actuel j'ai créé plusieurs classes groovy pour modéliser des objets retournés par une API. Dans ces classes j'ai une méthode statique qui analyse xml et retourne une liste d'objets de la classe. Je voudrais passer tout le type coulée non-sens en utilisant la méthode bindData dans ces classes. Toute suggestion sur comment faire ceci serait appréciée.Utilisation de la méthode bindData en dehors du contrôleur
6
A
Répondre
8
Je cherchais une solution similaire, pour utiliser bindData dans une classe de service. J'ai trouvé une solution dans JT's blog. La solution consiste essentiellement à l'importation:
import org.codehaus.groovy.grails.web.metaclass.BindDynamicMethod
puis ajoutez ceci à votre code:
def foo = new Foo()
BindDynamicMethod bind = new BindDynamicMethod()
def args = [ foo, params, [exclude:['name', 'mail']] ] // for example
bind.invoke(foo, 'bind', (Object[])args)
Le (Object []) du casting est nécessaire pour Groovy/Java compatibilité. (Groovy traite l'objet 'args comme une ArrayList, pas un tableau d'objets.)
Questions connexes
- 1. ASP.NET MVC Utilisation du contrôleur ou de la vue en dehors du contexte de l'application MVC
- 2. Catch Nom de la méthode du contrôleur
- 3. [Rails3] Pas en mesure d'appeler un mmethod personnalisé du contrôleur de poste en dehors du contrôleur post
- 4. Utilisation du contrôleur de navigation de superview
- 5. Est-il possible de renvoyer autre chose du contrôleur en dehors de la vue?
- 6. Utilisation de composants en dehors des contrôleurs dans CakePHP
- 7. Méthode de chargement du contrôleur actuel
- 8. Comment tester la méthode de rendu du contrôleur de Grail?
- 9. Sortie de la méthode du contrôleur ASP.NET MVC
- 10. Utilisation de la méthode indexOf() en JavaScript
- 11. Impossible de définir UISwitch en dehors de la classe de contrôleur
- 12. erreur de classe Utilisation de $ this en dehors du contexte de l'objet
- 13. cliquez en dehors du sélecteur en direct
- 14. Utiliser des aides à la demande en dehors des spécifications du contrôleur
- 15. Test (avec RSpec) d'un contrôleur en dehors d'un environnement Rails
- 16. Utilisation de zsh completion en dehors de zsh
- 17. Grails lien taglib utilisation en dehors de GSP
- 18. Utilisation de filtres DirectShow en dehors de DirectShow?
- 19. Django: utilisation de ForeignKeyRawIdWidget en dehors des formulaires d'administration
- 20. Attribut pour la méthode d'action du contrôleur MVC .net
- 21. Utilisation des méthodes magiques de php en dehors d'une classe
- 22. Afficher/Masquer ContextMenuStrip en dehors du formulaire
- 23. Utilisation d'objets simulés en dehors des tests, mauvaise pratique?
- 24. gestion de la mémoire android en dehors du tas
- 25. curseur personnalisé en dehors de la fenêtre du navigateur
- 26. Echec du RPC GWT en dehors de la classe EntryPoint
- 27. en utilisant différents formats pour BigDecimal dans BindData
- 28. Utilisation de MOQ pour tester le contrôleur
- 29. Personnalisation de la traduction du nom du contrôleur en grails
- 30. Rediriger vers une autre URL en dehors du projet depuis le contrôleur
Si cela est utilisé dans un thread dérivé (au moins avec executor-plugin), il semble échouer à cause d'une requête manquante: ** java.lang.IllegalStateException: aucune requête liée au thread trouvée: faites-vous référence à des attributs de requête en dehors d'une requête Web réelle ... ** – heikkim