JSP - ForEach循环中每个条目的按钮

时间:2017-06-21 11:35:02

标签: jsp

这是我的代码 - 使用提供的属性(候选者)的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循环但效果相同时 - 始终使用第一个候选者。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

您需要在循环中使用表单结束标记</form>。否则,只创建一个表单,并且无论如何都会提交相同的值。