如何在JSP中获取选中的复选框

如何使用jstl获取/设置复选框值,并仅从选中了复选框的数据库中删除那些记录?您还可以建议在这种情况下如何在jstl中使用三元运算符吗?

SearchStudent.jsp

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Lookup Students</title>

</head>

<form method="post" action="deleteStudentServlet" class="form">

<body class="body">

<!-- List results -->

<c:if test="${not empty studentList}">

<table border="1" cellspacing="0" cellpadding="0" :>

<tr>

<th></th>

<th>ID</th>

<th>Title</th>

<th>First Name</th>

<th>Last Name</th>

<th></th>

</tr>

<c:forEach var="students" items="${studentList}">

<tr>

<td><input type="checkbox" name="chkBox"> </td>

<td>${students.studentID}</td>

<td>${students.title}</td>

<td>${students.firstName}</td>

<td>${students.lastName}</td>

<td><c:url value="UDS" var="url">

<c:param name="StudentID" value="${students.studentID}" />

</c:url> <a href="${url}">Edit</a></td>

</tr>

</c:forEach>

</table>

</c:if>

<td><input type="submit" name="submit" value="Delete" ></td>

</form>

<p>There are ${fn:length(studentList)} results.</p>

</body>

</html>

谢谢。

回答:

您的复选框当前没有任何与参数名称关联的值:

<input type="checkbox" name="chkBox">

因此,很难找到已检查的项目。您需要为复选框提供一个唯一标识所选项目的值。在您的特定示例中,学生证似乎是一个显而易见的选择:

<input type="checkbox" name="selected" value="${student.studentID}">

(顺便说一句,为什么要在属性名称中复制实体名称?为什么不只是命名它,id以便您可以自我记录使用${student.id}?您var="students"也很奇怪,它仅指代

学生,所以只是命名它var="student"; ${studentList}最好命名为${students}

提交表单后,所有检查值均可用,如下所示:

String[] selectedStudentIds = request.getParameterValues("selected");

最后,只需将其传递给完成业务工作的DAO /服务类:

studentService.delete(selectedStudentIds);

以上是 如何在JSP中获取选中的复选框 的全部内容, 来源链接: utcz.com/qa/416967.html

回到顶部