Reputation: 2064
I have a code like this in my controller.
ModelAndView result = new ModelAndView("person/sometrends");
result.addObject("data", data); // data -> Map
In my JSP page I have written some Java code that is dependent on the data object. How can I get that data object within the JSP code?
I tried something like this (pseudo code).
<%
Map x = ${data};
%>
But that doesn't work. Not sure how to access it.
Upvotes: 21
Views: 90644
Reputation: 121
Let me more specific, if you want to use jsp
instead of jstl
to access the Model
you would do something like this:
<% Map x = (Map)request.getAttribute("data") %>
Upvotes: 12
Reputation: 13
include: <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
and then...
<%
Map x = ${data};
%>
Upvotes: -2
Reputation: 12324
In a scriptlet, you use the request object like so:
<% Map myMap = (Map) request.getAttribute("data"); %>
If you want to use something like JSTL instead of a scriptlet, you could do:
<c:forEach var="entry" items="${data}">
Name: ${entry.key} <br/>
Value: ${entry.value} <br/>
</c:forEach>
As Davemeister and novice pointed out, combining EL inside a scriptlet was the root cause of your error.
Upvotes: 36
Reputation: 4732
Using expression language inside the scriptlet would be the cause.
Upvotes: 1