5

In Spring MVC when placing an object in the view model like so:

public String getUser( Model model ) {
    //...fetch user...
    model.addAttribute( "user", user );
    return "viewName";
}

and accessing it's values in the JSP / JSTL view like this:

...
<p>
    ${user.name}
</p>
...

I'm wondering if it is possible to have code assist for the user object in the view?

The IDE I'm using is MyEclipse but it would be interesting to know if this is possible in other editors as well.

Thanks.

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
Bjorn Thor Jonsson
  • 827
  • 1
  • 10
  • 21

2 Answers2

3

Ideally you want the JSP/JSTL standard tags to be agnostic of the technology that supplies these objects but you are correct in that atleast while designing the support will be useful.

However it looks like Intellij IDEA seems to have something similar to what you want http://www.jetbrains.com/idea/features/spring_framework.html (towards the end)!

You have to add a JSP comment like this:

<%--@elvariable id="pet" type="com.mycompany.Pet"--%>

IntelliJ will then autocomplete based on that type.

alt text
(source: jetbrains.com)

Is using IntelliJ ruled out for you?

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
Kannan Ekanath
  • 16,759
  • 22
  • 75
  • 101
  • That screenshot shows exactly the feature I'd like to have. IntelliJ isn't ruled out and actually another team member is using that on the same project. We tried this in IntelliJ but didn't get code assistance for the objects added to the view model by the controller. Do you have some extra setup (includes?) to get this functionality? – Bjorn Thor Jonsson Mar 17 '10 at 15:13
  • You need the Ultimate edition (payware). This isn't supported by the (free) Community edition. – BalusC Mar 17 '10 at 15:18
  • Yes, this is only in the full ultimate edition that costs £470 for professional and £170 for personal commercial license – Kannan Ekanath Mar 17 '10 at 15:37
  • @CalmStorm I have the full paid for version, but this feature is rather temperamental - any tips ? http://stackoverflow.com/q/12694392/106261 – NimChimpsky Oct 02 '12 at 20:29
  • 1
    you need to add <%--@elvariable id="foo" type="com.mycompany.SomeObject"--%> to the jsp to get this to work though – NimChimpsky Oct 05 '12 at 13:02
2

In other words: you want code assist for EL (Expression Language, the ${} things)? This is not to be confused with JSP, JSTL nor Spring MVC.

Eclipse doesn't have any builtin EL autocompletion support, the JBoss Tools plugin adds some (JSF) EL autocompletion support. MyEclipse and IntelliJ have code assist for at least implicit EL objects. Not sure about custom EL objects though.

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555