java - 在JSP中处理多个提交按钮

标签 java forms jsp servlets

我有一个 jsp,它向我显示基地的学生列表。对于每个学生,我想要 2 个按钮 - 编辑和删除。单击“编辑”后,请求应重定向到我的 servlet Controller ,并打开一个用于编辑所选学生数据的新 jsp。单击“删除”后,所选学生的删除请求将发送至 Controller 。现在看起来像这样:

<%@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> 

问题是我无法弄清楚如何将我的学生与按钮连接起来,以便当请求发送到 Controller 时知道单击了哪个按钮以及选择了哪个学生。我知道我需要为每个学生提供一些唯一的 ID,但不知道如何创建它......

最佳答案

我相信Student已经拥有某种身份证明。举例来说,它有 private String id和适当的 setter/getter public String getId()

在这种情况下,您应该在生成提交按钮的名称时使用此 ID:

       <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()%>">

关于java - 在JSP中处理多个提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7938302/

相关文章:

java - Eclipse代码完成自动停用

javascript - 如何强制选中表单的复选框?

javascript - 如何在jsp中将javascript变量传递给java scriptlet

java - Google App Engine 不支持英镑等特殊字符

java - Proguard 不工作,eclipse(android) 不混淆

java - 比较列表列表中的一个元素

javascript - 使用 Javascript 根据下拉列表中选择的选项更改 URL

c# - C#.net 中的 Window Gridview 单元格合并

tomcat https 端口上的 JSP 显示不正确

java - 无法使用 Spring Boot 应用程序映射 html 文件