Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

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 6 Comments
Comments:

Matt, why don't you just download JBoss EL-- it has varargs, method invoke, and projections

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 #

Could it be used as custom tags replacement ?

Posted by Pascal Alberty on December 06, 2007 at 07:24 AM MST #

Even if the newInstance stuff was added late, it still wouldn't correct the fact that the Jasper compiler-- pre compiles all nodes/expressions separate from the Expression factory. To change that would be a huge gutting of the Jasper implementation.

Posted by Jacob Hookom on December 06, 2007 at 06:24 PM MST #

It appears you are correct Jacob. I tried implementing the Tomcat patch and plugging in JUEL. No dice. Doesn't seem to work on GlassFish either. Full details on JUEL's forums.

Posted by Matt Raible on December 06, 2007 at 10:06 PM MST #

How to get the Map key,value pair from Controller class to JSTL psge using select box.How to feach key,value pair to select box option and value. Can you help me..

Posted by satish on April 03, 2013 at 01:53 PM MDT #

Post a Comment:
  • HTML Syntax: Allowed