Обработка нескольких кнопок отправки в JSP - PullRequest
2 голосов
/ 29 октября 2011

У меня есть JSP, который показывает мне список студентов из базы.Для каждого студента я хочу 2 кнопки - Редактировать и Удалить.При нажатии «Изменить» запрос должен быть перенаправлен на мой сервлет-контроллер, и открывается новый jsp для редактирования данных выбранного учащегося.При нажатии «Удалить» запрос на удаление выбранного ученика отправляется контроллеру.Теперь это выглядит так:

<%@page import="socnet2.Student"%>
<!-- class Student emulates real student -->
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<jsp:useBean class="socnet2.DAO" id="dao" scope="request"></jsp:useBean>
<p><b>List of all students:</b></p>
<form action="/JSP1/Controler" method="POST">

            <jsp:scriptlet>
        for (Student s : dao.getAllStudents()) {
            </jsp:scriptlet>
            <p> <jsp:expression> s.getName() + " " + s.getSurname()</jsp:expression></p>
            <input type="submit" name="Edit" value="Edit" />
            <input type="submit" name="Delete" value ="Delete"/>
            <jsp:scriptlet>
        }
            </jsp:scriptlet>

    </form>
</body> 

Проблема в том, что я не могу понять, как связать моих учеников с кнопками таким образом, чтобы при отправке запроса на контроллер было известно, какая кнопка была нажата и какаястудент был выбран.Я понимаю, что мне нужен уникальный идентификатор для каждого студента, но я не знаю, как его создать ...

1 Ответ

4 голосов
/ 29 октября 2011

Я считаю, что Student уже имеет какой-то идентификатор. Скажем, например, что он имеет private String id и соответствующий геттер public String getId().

В этом случае вы просто должны использовать этот идентификатор при создании названия кнопок отправки:

       <input type="submit" name="Edit_<%=s.getId()%>" value="Edit" />
        <input type="submit" name="Delete_<%=s.getId()%>" value ="Delete"/>

Теперь вы можете различать студентов на стороне сервера. В качестве альтернативы вы можете создать отдельную форму для каждого учащегося и дать каждой форме уникальный URL:

<form method="post" url="http://myhost/myapp/students/<%s.getId()%>">

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...