使用JSTL forEach循环填充JSP表

时间:2019-02-16 21:56:58

标签: java foreach jstl

我的程序从输入中接收电子邮件,并使用hadibeenpwned API向用户显示从该电子邮件中发现的所有违规行为。

我想知道如何获取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>

这是我的servlet,在这里我得到发现的违规的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 :(得分:0)

运行此代码时会看到什么错误或结果? Here是一个教程,其中详细介绍了JSTL的用法。如此处所述,我认为您需要在JSTL表达式中将if (x < 0 || x >= 3 || y < 0 || y >= 3||arr[x][y] != 2) { return; } 限定为breaches

答案 1 :(得分:0)

因此,对于JSTL来说,我犯了一个非常简单的错误!

我不知道自己需要将JSTL库添加到我的项目中,而且还需要将此行添加到我的.jsp页面中:

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

因此,这样做之后,我的桌子就可以完美地工作了!希望这最终可以帮助JSTL新手!