так что у меня есть этот простой веб-сайт в jsp, который содержит список задач, я уже сделал функцию добавления, но теперь есть проблема с функцией удаления.
<ol class="list-group">
<c:forEach items="${todos}" var="todo">
<li class="list-group-item">${todo.toDoPosition} <a class="btn btn-light" href="${pageContext.request.contextPath}/delete-todo.do?uuidDelete=${todo.uuid}">Delete</a></li>
</c:forEach>
</ol>
Каждый toDoPosition имеет уникальный UUID, и функция удаления должна удалять позицию, сравнивая uUid toDoosition с этим параметром send in, я уже проверил, совпадают ли эти два uuid, и все же не хочет удалять позицию из список.
Существует сервлет, поддерживающий функцию удаления
private TodoService todoService = new TodoService();
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("uuidDelete") + "Should be deleted now");
todoService.deleteTodo(new Todo(request.getParameter("uuidDelete")));
response.sendRedirect("/todo.do");
}
Он перенаправляет сервлет, у которого есть метод returnList () в doGet, и у него также есть метод doPost, который отвечает за добавление нового todo:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getSession().setAttribute("todos", todoService.returnList() );
request.getRequestDispatcher("/WEB-INF/views/todo.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (request.getParameter("newTodo") != null) {
todoService.addTodo(new Todo(request.getParameter("newTodo")));
}
response.sendRedirect("/todo.do");
}
И услуга удаления:
protected List<Todo> toDoList = new ArrayList<>();
public List<Todo> returnList(){
return toDoList;
}
public void addTodo(Todo toDo) {
toDoList.add(toDo);
System.out.println(toDo.uuid);
}
public void deleteTodo(Todo toDo) {
if(toDoList.contains(toDo.uuid)) {
toDoList.remove(toDo);
}
}
После нажатия кнопки «Удалить» отправляется запрос с UUID, обновление сайта, но в списке нет изменений. Кажется, что метод delete не удаляет позицию из списка, потому что после того, как я перенаправил его в /todo.do и позиция списка печати, которую нужно удалить, все еще здесь, и я понятия не имею, почему