Wednesday December 05, 2007
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 in Java at Dec 05 2007, 06:34:41 PM MST 5 Comments
Search This Site
Recent Entries
- What's wrong with JSF
- Why such a busy week?
- New Passport in 9 Days
- EhCache Project Busy this Summer
- Spontaneous Stuff Weekend
- Awesome Birthday Present: A Kegerator
- Maven Plugin for Running Integration Tests against Multiple Containers
- Presenting Web Frameworks of the Future Tomorrow in Denver
- My OSCON Aftermath
- OSCON 2008 Wrapup
Posted by Jacob Hookom on December 05, 2007 at 09:23 PM 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 05, 2007 at 10:05 PM MST #
Posted by Pascal Alberty on December 06, 2007 at 12:24 AM MST #
Posted by Jacob Hookom on December 06, 2007 at 11:24 AM MST #
Posted by Matt Raible on December 06, 2007 at 03:06 PM MST #