面对Spring Application中c:out标记的问题

时间:2016-12-17 20:32:08

标签: spring jsp spring-mvc jstl

我的标签有问题。

控制器代码

List<Book> searchResultList = bookService.searchBook(bookBean.getSearchText());

ModelAndView modelView = new ModelAndView("searchResults");

if (null!=searchResultList)
{           
    modelView.addObject("searchResultList", searchResultList);

    System.out.println("========"+searchResultList.get(0).getBookTitle());

    return new ModelAndView("searchResults");
}

JSP代码

<c:forEach items="${searchResultList}" var="res">           
    <p>${res.bookTitle}</p>     
</c:forEach>

问题

我能够在控制器代码中打印记录。 但它不是从JSP打印出来的。 我通过论坛搜索,尝试了不同的解决方案,但无法解决。

感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为你的foreach循环中存在一些语法错误。请尝试以下代码段:

<c:forEach items="${searchResultList}" var="res">

  <p><c:out value="${res.bookTitle}" /></p>

</c:forEach>

此外,您还必须在JSP页面中包含以下标记库。

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

如果遇到问题,请告诉我。

您的代码存在问题。将ArrayList打印为System.out.println("========...后,当您返回ModelAndView对象时,您将创建一个新对象,这将返回一个新对象,而不是您要设置{{1}的对象对象。

请返回ArrayList变量。请参阅下面的代码段:

modelView

在pom.xml文件中添加if (null!=searchResultList){ modelView.addObject("searchResultList", searchResultList); return modelView; } 依赖项。保持版本与其他Spring模块依赖项相同。请参阅下面的代码段:

spring-expression