我的控制器中有这样的代码。
ModelAndView result = new ModelAndView("person/sometrends");
result.addObject("data", data); // data -> Map
在我的JSP页面中,我编写了一些依赖于数据对象的Java代码。 如何在JSP代码中获取该数据对象?
我试过这样的事情(伪代码)。
<%
Map x = ${data};
%>
但这不起作用。不知道如何访问它。
答案 0 :(得分:34)
在scriptlet中,您可以像这样使用请求对象:
<% Map myMap = (Map) request.getAttribute("data"); %>
如果你想使用JSTL而不是scriptlet,你可以这样做:
<c:forEach var="entry" items="${data}">
Name: ${entry.key} <br/>
Value: ${entry.value} <br/>
</c:forEach>
正如Davemeister和新手指出的那样,在一个scriptlet中结合EL是导致错误的根本原因。
答案 1 :(得分:12)
更具体地说,如果您想使用jsp
代替jstl
访问Model
,您可以执行以下操作:
<% Map x = (Map)request.getAttribute("data") %>
答案 2 :(得分:3)
试试这个:
request.getAttribute("data")
答案 3 :(得分:2)
尝试<% String username = (String)request.getAttribute("data"); %>
答案 4 :(得分:1)
在scriptlet中使用表达式语言是原因。
答案 5 :(得分:-1)
包括:<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
然后......
<%
Map x = ${data};
%>