我的程序从输入中接收电子邮件,并使用hasibeenpwned 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);
}
}
运行此代码时看到的错误或结果是什么? Here是一个教程,详细解释了JSTL的用法。如上所述,我认为你需要在QSTL表达式中将breaches
限定为requestScope.breaches
。
所以,作为JSTL的新手,我犯了一个非常简单的错误!
我不知道我需要将JSTL库添加到我的项目中,我还需要将此行添加到我的.jsp
页面:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
所以这样做之后,我的桌子完美无缺!希望这最终会帮助JSTL新手!