I have a bunch of java custom tags that use spring managed beans.. since i cant find a way to inject into a custom tag, i created a helper class that provides static methods to “getTheObjectINeedBean()” for all the spring bean objects i need.. I do not like this approach at all.
i really want to be able to inject a spring managed bean into the custom tag
Is there a way? As far as my research goes, I understand there is no way to do this, because the custom tag is container managed
Thanks,
Billy
You are correct there isn’t a simple way to use dependency-injection in jstl tags, because they are not managed by spring, and cannot be. However there are (at least) two workarounds:
@Configurable– aspectJ allows you to plug a weaver at load-time/compile-time, so that even objects that are not instantiated by spring can be spring aware. See hereYou can create a base tag class for your project, and call an
init(..)method from everydoStartTag(..)method. There, you can get theServletContextfrom thepageContext, and thus obtain the springApplicationContext(viaApplicationContextUtils). Then:Neither options are perfect as they require either some additional code, or some “black magic”