gpt4 book ai didi

jsp - 如何在 JSP 中选中复选框

转载 作者:行者123 更新时间:2023-12-04 10:54:37 25 4
gpt4 key购买 nike

如何使用 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">

所以很难找出被检查的。您需要为复选框指定一个唯一标识所选项目的值。在您的特定示例中,学生 ID 似乎是一个明显的选择:
<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);

也可以看看:
  • How to transfer data from JSP to servlet when submitting HTML form
  • ServletRequest.getParameterMap() returns Map<String, String[]> and ServletRequest.getParameter() returns String?
  • Send an Array with an HTTP Get
  • 关于jsp - 如何在 JSP 中选中复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396828/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com