Spring MVC, JstlView and exposeContextBeansAsAttributes
Did you know that Spring MVC's JstlView has a exposeContextBeansAsAttributes property you can use to expose all your Spring beans to JSTL? I didn't. To configure it, you configure your viewResolver as follows:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="exposeContextBeansAsAttributes" value="true"/> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean>
After doing this, any Spring bean can get referenced in JSTL with:
${beanId.getterMethodWithoutTheGetPrefix}
If you're using Spring 2.5a annotations and <context:component-scan>, you'll need to specify a "value" attribute on your annotations in order to reference them in JSTL. For example:
@Controller(value = "beanId") @RequestMapping("/foo.html") public class MyController extends SimpleFormController ... @Component(value="testClass") public class TestClass {
Pretty cool stuff. It'd be a lot more useful if you could call methods with parameters. Hopefully JUEL will solve that problem. JSTL's functions work, but I'd rather write ${foo.method('arg')} rather than ${taglib:callMethod(foo, 'method', 'arg')}.
Posted by Jacob Hookom on December 06, 2007 at 04:23 AM MST #
Jacob - I'd be more than happy to, especially if I can configure it as the default EL in Tomcat. To do this with JUEL, changes need to be made to Tomcat.
BTW, does JBoss EL allow HTML escaping by default?
Posted by Matt Raible on December 06, 2007 at 05:05 AM MST #
Posted by Pascal Alberty on December 06, 2007 at 07:24 AM MST #
Posted by Jacob Hookom on December 06, 2007 at 06:24 PM MST #
Posted by Matt Raible on December 06, 2007 at 10:06 PM MST #
Posted by satish on April 03, 2013 at 01:53 PM MDT #