Solución:
Actualmente, su casilla de verificación no tiene ningún valor asociado con el nombre del parámetro:
<input type="checkbox" name="chkBox">
Por eso es difícil encontrar los marcados. Debe asignar a la casilla de verificación un valor que identifique de forma exclusiva el elemento seleccionado. En su ejemplo particular, la identificación de estudiante parece ser una opción obvia:
<input type="checkbox" name="selected" value="${student.studentID}">
(por cierto, ¿por qué está duplicando el nombre de la entidad en el nombre de la propiedad? ¿Por qué no simplemente nombrarlo id
para que puedas usarlo como un autodocumental ${student.id}
? también tu var="students"
es un poco extraño, solo se refiere uno estudiante, así que solo nómbralo var="student"
; los ${studentList}
puede ser mejor nombrado ${students}
)
Cuando se envía el formulario, todos los valores marcados están disponibles de la siguiente manera:
String[] selectedStudentIds = request.getParameterValues("selected");
Finalmente, simplemente páselo a su DAO / clase de servicio que hace el trabajo comercial:
studentService.delete(selectedStudentIds);
Ver también:
- Cómo transferir datos de JSP a servlet al enviar un formulario HTML
- ServletRequest.getParameterMap () devuelve Map[]> y ServletRequest.getParameter () devuelve String?
- Enviar una matriz con un HTTP Get