JSTL итеративный список - PullRequest
0 голосов
/ 25 июня 2019

У меня есть этот класс:

public class Orders{

    private Integer id;
    private String name;

    //getters/setters

}

В контроллере я передаю List<Orders> jsp:

@RequestMapping(value = "/orders")
public ModelAndView orders(){

    List<Orders> orders = ...//get list from db

    //print list in console
    orders.forEach(e -> System.out.println(e.getId() + " - " + e.getName()));
    //print -> 1 - name1 ; 2 - name2

    return new ModelAndView("orders", "orders", orders);

}

В jsp используйте его так:

${orders.size()}
<c:forEach items="${orders}" var="order">
    <c:out value="${order.getId()}"></c:out>
</c:forEach>

В браузере при проверке (html-код) выглядит так:

"2"
<c:foreach items="[com.web.entity.Orders@21e16dd6, 
                   com.web.entity.Orders@52a33913]" var="order">
    <c:out value=""></c:out>
</c:foreach>

Я тестировал в контроллере, печатая список в консоли, и все правильно.

Почему вJSP не печатается?

1 Ответ

1 голос
/ 25 июня 2019

Не могли бы вы предоставить более подробную информацию (код контроллера, теги HTML-страницы ...).Тем не менее, я хочу поделиться с вами некоторыми соображениями:

  • Всегда используйте метод toString в вашей сущности / POJO.
  • Используйте order.id вместо order.getId ()
  • Убедитесь, что в верхней части вашей HTML-страницы есть основной тег JSTL:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • Попробуйте использовать простой тег c: out:
<c:out value="${order.id}"/> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...