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.
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.
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") %>
Try this:
request.getAttribute("data")
try<% String username = (String)request.getAttribute("data"); %>
Using expression language inside the scriptlet would be the cause.
include: <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
and then...
<%
Map x = ${data};
%>