【问题标题】:unable to retrieve modelandview object in jsp无法在 jsp 中检索模型和视图对象
【发布时间】:2016-10-09 02:45:49
【问题描述】:

我无法从 spring 控制器访问模型和视图对象到 jsp。我正在使用 spring 4、jstl 1.2 和 webapp 3.0 版

<?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">

这是我的控制器

@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;
   }

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

<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"%>

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

HashMap<String, Object> map=new HashMap<>();
map.put("products", products);
map.put("hello","hai");     
mv.addAllObjects(map);      
return mv;

spring 控制器没有问题,因为我可以从数据库中检索产品对象,但模型和视图中添加的对象没有显示在 jsp 中。

【问题讨论】:

  • 更新我使用的是tomcat 8 web server

标签: jsp spring-mvc web-applications


【解决方案1】:

不知道我是怎么改的

org.springframework.web.portlet.ModelAndView

而不是

org.springframework.web.servlet.ModelAndView

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 2018-01-15
      相关资源
      最近更新 更多