Значения, не отображаемые в jsp

Я новичок в Spring Framework и с помощью 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; 
}
</place>

В моем 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" %>


 Hello World!
 <c:foreach items="${places}" var="place">
 <c:out value="${place.name}"> 
 <c:out value="${place.rating}">
 </c:out></c:out></c:foreach>
<c:foreach begin="6" end="15" var="val">
 </c:foreach>

Для обоих циклов for я получаю ${place.name}, ${place.rating}, ${place.types} и ${val} напечатанные. Однако System.print.out() дает мне нужные значения.

Что я делаю неправильно?

1 ответ

Хорошо, я нашел решение. возможно, это поможет кому-то еще в будущем

Если вы используете старый дескриптор JSP 1.2, определенный DTD, например web.xml

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

EL отключен или проигнорирован по умолчанию, вы должны включить его вручную, чтобы он выводил хранилище значений в модели "msg".

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

Если вы используете стандартный дескриптор 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

licensed under cc by-sa 3.0 with attribution.