如何使用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>
Run Code Online (Sandbox Code Playgroud)
谢谢.
Bal*_*usC 12
您的复选框当前没有与参数名称关联的值:
<input type="checkbox" name="chkBox">
Run Code Online (Sandbox Code Playgroud)
因此很难找到已检查的那些.您需要为复选框指定一个唯一标识所选项目的值.在您的特定示例中,学生ID似乎是一个明显的选择:
<input type="checkbox" name="selected" value="${student.studentID}">
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,你为什么要复制属性名称中的实体名称?为什么不只是命名它id
以便你可以自我纪录使用${student.id}
?也var="students"
有点奇怪,它只是指一个学生,所以只需命名它var="student"
; ${studentList}
可以更好地命名${students}
)
提交表单后,所有选中的值都可用如下:
String[] selectedStudentIds = request.getParameterValues("selected");
Run Code Online (Sandbox Code Playgroud)
最后,只需将其传递给执行业务工作的DAO/service类:
studentService.delete(selectedStudentIds);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37692 次 |
最近记录: |