Заполните таблицу JSP с помощью JSTL forEach Loop - PullRequest
0 голосов
/ 17 февраля 2019

Моя программа берет электронную почту из ввода и использует API-интерфейс haveibeenpwned, чтобы показать пользователю все найденные в этой электронной почте нарушения.

Мне интересно, как можно получить цикл forEach для заполнениястол правильно.В настоящее время он просто заполняет каждый элемент в одну строку таблицы с заголовком таблицы под данными.Я бы хотел, чтобы заголовок был сверху, а каждое нарушение - в отдельной строке таблицы.

Вот моя форма .jsp с таблицей и forEach:

<table class="table">
  <thead>
    <tr>
      <th scope="col">#</th>
      <th scope="col">Breach</th>
    </tr>
  </thead>
  <tbody>
    <c:forEach var="breach" items="${breaches}" varStatus="status">
      <tr>
        <th scope="row">${status.count}</th>
          <td><p>${breach}</p></td>
      </tr>
    </c:forEach>
  </tbody>
</table>

Вот мой сервлет, в котором я получаю ArrayList обнаруженных нарушений:

String json = callPwnedApi(email);

    if (json.startsWith("{") || json.startsWith("[")) {
        Gson gson = new Gson();
        ArrayList<Breach> breaches = gson.fromJson(json, new TypeToken<ArrayList<Breach>>(){}.getType());

        if (!breaches.isEmpty() && breaches.size() > 0) {
            request.setAttribute("breaches", breaches);
        }
    } 

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Поэтому, будучи новичком в JSTL, я допустил очень простую ошибку!

Я не знал, что мне нужно добавить библиотеку JSTL в мой проект, и мне также нужно было добавить эту строку в мой .jsp page:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

Так что после этого мой стол работает отлично!Надеюсь, это в конечном итоге поможет кому-то новичку в JSTL!

0 голосов
/ 17 февраля 2019

Какую ошибку или результат вы видите при запуске этого кода? Здесь - это учебное пособие, в котором подробно объясняется использование JSTL.Как уже упоминалось, я думаю, вам нужно квалифицировать breaches как requestScope.breaches в выражении JSTL.

...