13

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>

ありがとう。

4

2 に答える 2

19

現在、チェックボックスにはパラメータ名に関連付けられた値がまったくありません。

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

そのため、チェックされたものを見つけるのは難しいです。チェックボックスに、選択したアイテムを一意に識別する値を指定する必要があります。あなたの特定の例では、学生IDは明白な選択のようです:

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

(ちなみに、なぜプロパティ名にエンティティ名を複製しているのですか?id自己ドキュメンタリーで使用できるように名前を付けないのはなぜ${student.id}ですか?また、var="students"奇妙なことに、1人の学生だけを参照しているので、名前を付けてくださいvar="student";${studentList}より良い名前を付けることができます${students}

フォームが送信されると、チェックされたすべての値が次のように利用可能になります。

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

最後に、それをビジネスジョブを実行するDAO/サービスクラスに渡します。

studentService.delete(selectedStudentIds);

参照:

于 2012-09-13T19:40:23.070 に答える
-1

これはあなたを助けるかもしれません。

ajax呼び出しの場合:

var boolValue= $(this).closest(".tr").find('.checkboxClass').is(':checked');

$.post("/api/dosomething", {                                     
    someSettings : boolValue
})
于 2019-08-05T10:37:07.247 に答える