这是我的代码 - 使用提供的属性(候选者)的JSP文件:
<% ArrayList<Candidate> candidates = (ArrayList<Candidate>) request.getAttribute("candidates"); %>
<% for (int i = 0; i<candidates.size(); i++) { %>
<table>
<tr>
<td><b>Imię</b></td>
<td> <%= candidates.get(i).getFirstName() %></td>
</tr>
<tr>
<td><b>Nazwisko</b></td>
<td> <%= candidates.get(i).getLastName() %>
</td>
</tr>
<tr>
<td><b>PESEL</b></td>
<td> <%= candidates.get(i).getPESEL() %>
</td>
</tr>
<tr>
<td><b>Płeć</b></td>
<td><%= candidates.get(i).getSex() %>
</td>
</tr>
<tr>
<td><b>Miasto</b></td>
<td><%= candidates.get(i).getCity() %>
</td>
</tr>
<tr>
<td><b>Adres</b></td>
<td><%= candidates.get(i).getAddress() %>
</td>
</tr>
<tr>
<td><b>Numer kontaktowy</b></td>
<td><%=candidates.get(i).getContactNumber() %>
</td>
</tr>
<tr>
<td><b>Adres e-mail</b></td>
<td><%= candidates.get(i).getEmailAddress() %>
</td>
</tr>
<tr>
<td><b>Umiejętności</b></td>
<td><%= candidates.get(i).getExperiences() %>
</td>
</tr>
</table>
<br>
<form action="JobOfferServlet" method="post">
<% Integer id = candidates.get(i).getId(); %>
<input type="hidden" name="candidateId" value="<%= id%>">
<button type="submit" name="option" value="listMatching">Znajdz oferty pracy dla
<%= candidates.get(i).getFirstName()%> <%= candidates.get(i).getLastName()%></button>
<br><br>
<% } %>
我在这里要做的是: 我想在候选人ArrayList中显示每个候选者,另外 - 为每个条目添加指定的按钮,它将转发候选人的ID以及指定Servlet类中所需结果的选项参数。
问题是,无论我点击哪个按钮,发送ID始终为1 - 即使每个候选人都在浏览器中正确打印,即使按钮的标签上也会对列表中的第一个候选人执行操作...
首先我尝试使用ForEach JSP循环,当使用基本的For循环但效果相同时 - 始终使用第一个候选者。
我怎样才能让它发挥作用?
答案 0 :(得分:0)
您需要在循环中使用表单结束标记</form>
。否则,只创建一个表单,并且无论如何都会提交相同的值。