Java 在JSP中处理多个提交按钮

Java 在JSP中处理多个提交按钮,java,forms,jsp,servlets,Java,Forms,Jsp,Servlets,我有一个jsp,它向我显示了来自base的学生列表。对于每个学生,我需要2个按钮-编辑和删除。单击Edit(编辑)按钮,请求应重定向到我的servlet控制器,并打开一个用于编辑所选学生数据的新jsp。单击“删除”按钮,所选学生的删除请求将发送给控制者。现在看起来是这样的: <%@page import="socnet2.Student"%> <!-- class Student emulates real student --> <%@page contentTy

我有一个jsp,它向我显示了来自base的学生列表。对于每个学生,我需要2个按钮-编辑和删除。单击Edit(编辑)按钮,请求应重定向到我的servlet控制器,并打开一个用于编辑所选学生数据的新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> 

JSP页面
所有学生名单:

for(学生s:dao.getAllStudents()){ s.getName()+“”+s.GetLastname()

}

问题是我不知道如何将我的学生与按钮连接起来,当请求发送到控制器时,就知道单击了哪个按钮,选择了哪个学生。我知道我需要每个学生都有一个唯一的id,但不知道如何创建它…

我相信
学生已经有了某种id。比如说,它有
私有字符串id
和相应的getter
公共字符串getId()

在这种情况下,在生成提交按钮的名称时,您只需使用此ID即可:

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

现在,您可以区分服务器端的学生。 或者,您可以为每个学生创建单独的表单,并为每个表单提供其唯一的URL:


谢谢你的想法。问题是我在一个类中没有一个唯一的学生ID,因为类学生只是某种包装器,在基中只存在大表用户,每个用户有不同的角色。所以我使用简单的整数计数器来添加。我按照您的建议更改了上面的代码,并尝试了int counter=0;ArrayList students=dao.getAllStudents();session.setAttribute(“学生”,学生);for(Student s:dao.getAllStudents()){不要将请求加倍。但是现在是BAD,我指的是对DB的请求。但是现在netbeans说这是未终止的