JSTL Arraylist. Значение пусто - PullRequest
1 голос
/ 14 января 2012

Я искал ту же проблему, что и моя, но ничего не нашел.Это моя проблема:

У меня есть ArrayList, который включает бины.Мои бобы - это класс 'Row'.Существуют сеттеры и геттеры.

Это метод из класса базы данных:

public ArrayList<Row> getDatalist() {
    datalist = new ArrayList<Row>();
    try {
        String query = "SELECT * FROM ...";
        ResultSet r = s.executeQuery(query);
        while(r.next()) {
            Row row = new Row();
            row.setLocation(r.getString(4));
            row.setVolume(r.getInt(3));
            row.setTime(r.getTime(5));
            row.setDate(r.getDate(5));
            datalist.add(row);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return datalist;
}

Мой сервлет:

    ArrayList<Row> rows = db.getDatalist();
    request.setAttribute("rows", rows);
    request.getRequestDispatcher("/main.jsp").forward(request,response);

И, по крайней мере, 'main.jsp':

<c:forEach var="row" items="${rows}">
      <c:out value="${row.location}"></c:out>
</c:forEach>

Проблема в том, что $ {row.location} пуст.Источник моей страницы:

<c:forEach var="row" items="[webservice.model.Row@1e41769, webservice.model.Row@1bd0815, webservice.model.Row@15dd716, webservice.model.Row@1d40d08]">

      <c:out value=""></c:out>

</c:forEach>

Есть идеи?Большое спасибо.

Ответы [ 2 ]

1 голос
/ 14 января 2012

Ваш источник страницы ясно указывает на проблему: теги c не интерпретируются контейнером. Это означает, что вы забыли объявить тег тега c в верхней части JSP:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
0 голосов
/ 14 января 2012

убедитесь, что вы установили это:

<%@ page isELEnabled ="true"%>

чтобы включить выражение el。

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...