无法在jsp中检索modelandview对象

时间:2016-06-08 17:31:03

标签: jsp spring-mvc web-applications

我无法从spring控制器访问模型和视图对象到jsp。我使用的是spring 4,jstl 1.2和webapp version 3.0

dateutil

这是我的控制器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns="http://java.sun.com/xml/ns/javaee"           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

我能够从数据库中获取值列表,但添加的对象不会在jsp中打印。例如$ {hello}没有被打印,但是我能够检索在同一个jsp中设置的$ {i}值。

@RequestMapping(value="/products",method = RequestMethod.GET)
   public ModelAndView processProductPage() {
    ModelAndView mv=new ModelAndView();
    mv.setViewName("products");

    List<Product> products=productPageFacade.execute();//Retrieve products from db

    mv.addObject("products",products);
    mv.addObject("hello","hai");


    return mv;
   }

Taglib指令:

<c:set var="i" value="0" ></c:set>

<c:out value="${hello}"></c:out>yyy 
<c:out value="${i}"></c:out>

我甚至尝试使用以下代码,但没有运气。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

Spring控制器没有问题,因为我能够从db检索产品对象,但是模型和视图中添加的对象没有显示在jsp中。

2 个答案:

答案 0 :(得分:1)

不确定它是如何改变的我用过

org.springframework.web.portlet.ModelAndView

而不是

org.springframework.web.servlet.ModelAndView

在我的程序中导致了这个问题。它通过将其更改回servlet ModelAndView来解决。

答案 1 :(得分:0)

${hello}未打印,因为您已将该属性命名为。相反,您需要打印值,这是mv.addObject()方法的第二个参数。

<c:out value="${hai}"></c:out>