My first thought is, are you sure the calls to spring are expensive? This stuff is pretty heavily optimized, so make sure it's actually a problem before trying to optimize it.
Assuming it is a problem, then an alternative is the exposeContextBeansAsAttributes
and exposedContextBeanNames
properties of InternalResourceViewResolver
. You can use one or the other (but not both) to expose some or all of your beans as JSP attributes.
This raises the possibly of actually injecting Spring beans into your tag classes. For example, in your Spring context you can have:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="exposeContextBeansAsAttributes" value="true"/>
</bean>
<bean id="myBean" class="com.x.MyClass"/>
Your JSP:
<MyTag thing="${myBean}"/>
SO if MyTag
defines an attribute thing
of type MyClass
, the myBean
spring bean should get injected as a normal JSP attribute.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…