Значения, не отображаемые в 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.