ModelAndView没有将模型返回到spring mvc中的JSP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ModelAndView没有将模型返回到spring mvc中的JSP相关的知识,希望对你有一定的参考价值。

我试图在jsp页面中显示通过控制器返回的对象,但我没有看到jsp中的对象。以下是我的控制器:

@RequestMapping(value = "/search/{groupName}", menthod = {RequestMethod.Get, RequestMethod.POST})
public ModelAndView groupAlphaHandler(@PathVariable("groupName") String groupName, HttpServletRequest request) {

    ArryList<GroupAlphaInfoVO> groupAlphaInfoVO = groupAlphaService.loadGroupAlphaSearchResult(groupName);
    //view name "group-alpha"     
    ModelAndView mav = new ModelAndView("group-alpha");
    mav.addObject("groupAlphaInfoVO", groupAlphaInfoVO);
    mav.addObject("pageTitle", "Group Alpha");
    //added debug point here and made sure groupAlphaInfoVO is not null (it has around 1000 records)
    return mav;
    }

这是我的jsp页面组-α.jsp:

<html>
<head>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Group Alpha</title>
</head>
<body>
        ${pageTitle}<!-- this is getting displayed on jsp-->
	${groupAlphaInfoVO}
</body>
</html>
答案

似乎你在做一个愚蠢的错误

@RequestMapping(value = "/search/{groupName}", menthod = {RequestMethod.Get, RequestMethod.POST})

拼写错误。它不是menthod它是method:P而且我没有必要使用RequestMethod.POST

另一个错误是mav.addObject("groupAlphaInfoVO", groupAlphaInfoVO);用这个代码你把对象列表。在jsp页面中,您没有在列表上执行任何操作。要打印该列表,您应该编写<c:forEach>....</c:forEach>代码。例如

<c:forEach var="results" items="${groupAlphaInfoVO}">
       <c:out value="${results.userid}"></c:out>
       <c:out value="${results.password}"></c:out>
       <c:out value="${results.role}"></c:out>
       <c:out value="${results.contact}"></c:out>
       <c:out value="${results.mentor}"></c:out>
       <c:out value="${results.group}"></c:out>
</c:forEach>

对于使用,您需要在pom.xml中添加JSTL依赖项

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

并在jsp页面的顶部添加<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>

另一答案

你需要这个isELIgnored="false"

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" isELIgnored="false"%>  //here

以上是关于ModelAndView没有将模型返回到spring mvc中的JSP的主要内容,如果未能解决你的问题,请参考以下文章

Spring企业级程序设计 • 第6章 深入Spring MVC开发

处理模型数据

SpringMVC -- SpringMVC的数据响应 页面跳转(直接返回字符串ModelAndView对象(3种方式)原始的request对象)

用ModelAndView返回视图结果返回的是对应RequestMapping拼接的路径

Java中ModelAndView是做啥的?

ssm科普篇