【问题标题】:Values not displayed in jsp [duplicate]jsp中未显示的值[重复]
【发布时间】:2014-03-26 18:45:54
【问题描述】:

我是 Spring 框架和使用 jstl 的新手。我在 jsp 文件上显示我的数据时遇到问题。这是我的代码

控制器

@RequestMapping(method = RequestMethod.GET, value = "/test")
public ModelAndView getTest(HttpServletRequest request) {
    List<Place> places = PlacesService.search(types, 48.137048, 11.57538599, 10000);
    for(Place place:places){        

        System.out.println("Name: " + place.getName());
        System.out.println("Rating: " + place.getRating());
        System.out.println("Categories: " + place.getTypes());
        counter++;
    }
    ModelAndView model = new ModelAndView("test");
    model.addObject("places", places);
    return model; 
}

在我的 test.jsp 中

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
 Hello World!
 <c:forEach items="${places}" var="place">
   <c:out value="${place.name}"/>   
   <c:out value="${place.rating}"/>
   <c:out value="${place.types}"/>
</c:forEach>
<c:forEach begin="6" end="15" var="val">
    <c:out value="${val}"/>
</c:forEach>

</body>
</html>

对于两个 for 循环,我都打印了 ${place.name}${place.rating}${place.types}${val}。但是System.print.out() 给了我想要的值。

我做错了什么?

【问题讨论】:

  • 您使用的是什么 Servlet 容器?哪个版本?
  • 对不起,我不知道它是一个简单的 maven 项目
  • 你在使用Tomcat吗?哪个版本?

标签: java jsp spring-mvc jstl


【解决方案1】:

好的,我找到了解决方案。也许它会在未来帮助别人

如果您使用的是旧的 JSP 1.2 描述符,由 DTD 定义,例如 web.xml

  <!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
 //...
</web-app>

EL默认被禁用或忽略,您必须手动启用它,以便它将值存储在“msg”模型中。

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <html>
 <head>
    <%@ page isELIgnored="false" %>
 </head>
 <body>
       ${msg}
 </body>
 </html>

如果您使用标准 JSP 2.0 描述符,由 w3c 模式定义,例如 web.xml

<web-app id="WebApp_ID" version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
    //...
</web-app>

默认情况下启用 EL,您应该会看到存储在“msg”模型中的值

【讨论】:

    【解决方案2】:

    在旧的 JSP 1.2 描述符中,在您的 jsp 标头中使用此标记

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-01
      • 2014-11-22
      • 2017-02-10
      • 2019-08-13
      • 2017-06-28
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      相关资源
      最近更新 更多