J'utilise Spring 3 et je veux injecter des dépendances dans une classe qui fait partie d'un taglib. Je peux imaginer un peu de kludge en utilisant constructor-arg, mais j'espère que quelqu'un d'autre a une meilleure idée.Injecter une dépendance dans une classe taglib?
5
A
Répondre
6
Si vous décidez d'accéder à un service ou à un DAO à partir d'un tag personnalisé, vous devez accéder à ApplicationContext à partir du tag, puis récupérer le bean.
ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(pageContext.getServletContext());
MyService myService = applicationContext.getBean(MyService.class);
myService.doSomething();
+0
pageContext est un attribut protégé dans TagSupport –
1
Il y a aussi http://www.shredzone.org/projects/jshred/wiki/Spring_supported_Tag_Libraries - cela fonctionne en créant une classe proxy pour chaque classe taglib gère l'interaction avec le printemps, et utilise printemps pour générer une instance de la taglib lorsque cela est nécessaire.
"Ne fais pas ça" serait mon conseil. – duffymo
Pourquoi pas? Je veux que mon tag charge des données à partir d'un service. – jiggy
Voir http://stackoverflow.com/questions/3924909/how-to-write-tag-in-my-spring-project – skaffman