Что я хочу сделать, это составить список людей с id
и другими атрибутами.
Прежде всего приложение открывается с формой для ввода личных данных.Затем он переходит к сервлету, ответственному за сбор данных.Затем сервлет отправляет его в другой файл JSP, который показывает данные.Затем, если пользователь решает добавить еще один, он добавляет его.
Это работало нормально, но мне пришлось изменить приложение, чтобы добавить в таблицу HTML кнопку отправки, чтобы пользователь мог удалить нужного ему человека с помощью другого сервлета.для удаления.
Я попытался установить ArrayList
, который содержит все данные в качестве атрибута, но он не работал.
Сначала я попытался таким образом:
String x = request.getParameter("submit");
if (x != null) {
request.setAttribute("list", list);
request.setAttribute("id", p.getId());
request.getRequestDispatcher("Supprimer").forward(request, response);}
Тогда я попробовал так:
out.println(" <tr><td> <form method='POST'>");
out.println("<input type='hidden' name='id' value='" + p.getId() + "' >");
request.setAttribute("list", list);
out.println("<input type='submit' value='Supprimer' name='submit' ></td></tr> ");
out.println(" <tr><td> </form >");

и это jsp-файл, который покажет данные
<%
ArrayList<personne> list = (ArrayList<personne>) request.getAttribute("list");
request.setAttribute("listt", list);
for (personne p : list) {
out.println("<table border='2'>");
out.println("<tr> <td>ID</td><td>");
out.println(p.getId());
out.println("</td> </tr><tr><td>Nom</td> <td>");
out.println(p.getNom());
out.println(" </td> </tr><tr> <td>Prenom</td> <td>");
out.println(p.getPrenom());
out.println(" </td> </tr><tr> <td>Sexe</td> <td>");
out.println(p.getSexe());
out.println(" </td></tr><tr><td>CodePostale</td><td>");
out.println(p.getCodePostal());
out.println(" </td></tr> </table> </br>");
out.println(" <tr><td> <form method='POST'>");
out.println("<input type='hidden' name='id' value='" + p.getId() + "' >");
request.setAttribute("list", list);
out.println("<input type='submit' value='Supprimer' name='submit' ></td></tr> ");
out.println(" <tr><td> </form >");
String x = request.getParameter("submit");
if (x != null) {
request.setAttribute("list", list);
request.setAttribute("id", p.getId());
request.getRequestDispatcher("Supprimer").forward(request, response);
}
out.println(" </table> </br>");
}
%>
это первый сервлет, который будет захватывать данные, поступающие из первой отправленной формы
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
int id = Integer.parseInt(request.getParameter("id"));
String nom = request.getParameter("nom");
String prenom = request.getParameter("prenom");
String sexe = request.getParameter("sexe");
int codePostal = Integer.parseInt(request.getParameter("cd"));
personne p = new personne(id, nom, prenom, sexe, codePostal);
ap.add(p);
request.setAttribute("list", ap);
request.getRequestDispatcher("affichage.jsp").forward(request, response);
}
, и это ответчик сервлета, отвечающий за удаление объекта и отправляющий нас на первый сервлет, чтобы он мог отправить намснова в файл jsp, чтобы показать нам новые данные
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ArrayList<personne> list = (ArrayList<personne>)request.getAttribute("list");
int id =Integer.parseInt(""+request.getAttribute("id"));
System.out.println(id);
java.util.Iterator<personne> itr = list.iterator();
while (itr.hasNext())
{
if(id==itr.next().getId()){
itr.remove();
}
}
request.setAttribute("list", list);
request.getRequestDispatcher("affichage.jsp").forward(request, response);
}
Кстати, это не помогло мне: как отправить ArrayList из jsp в сервлет