如何在jsp页面中访问ModelAndView对象

时间:2010-09-17 17:40:43

标签: spring-mvc

我的控制器中有这样的代码。

ModelAndView result = new ModelAndView("person/sometrends");  
result.addObject("data", data);  // data -> Map

在我的JSP页面中,我编写了一些依赖于数据对象的Java代码。 如何在JSP代码中获取该数据对象?

我试过这样的事情(伪代码)。

<%
    Map x = ${data};
%>

但这不起作用。不知道如何访问它。

6 个答案:

答案 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};
%>