0

这段代码是用jsp编写的。它是一个有行和列的动态表。当点击提交按钮时,只有选定的行和该行中的数据应该被提取到servlet中。

``<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page import="java.io.*,java.util.*,java.sql.*" %>
    <%@ page import="javax.servlet.http.*,javax.servlet.*" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Saravana Bhavan</title>
<link rel="stylesheet" href="css/lavish-bootstrap.css"/>
<link rel="stylesheet" href="css/font-awesome.css"/>
</head>
<body>
<form name="f1" method="post" action="Insertcheck.jsp">
<sql:setDataSource var="snapshot"
driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:xe"
user="system" password="pswd"
/>
<sql:query dataSource="${snapshot}" var="result">
select * from vendormenu
</sql:query>
<center><h3>Saravana Bhavan</h3>
<h4 class="text-muted">Menu</h4></center>
<div class="panel">
<table class="table table-bordered table-responsive" border="2" width="100%">
<tr>

<td>ITEM CODE</td>
<td>ITEM NAME</td>
<td>RATE</td>
<td></td>

</tr>
<c:forEach var="row" items="${result.rows}">
<center>
<tr>
<td><c:out value="${row.mid }"/>
</td>
<td><c:out value="${row.mname }"/>
</td>
<td><c:out value="${row.cost }"/></td>
<td><div class="checkbox">
  <label><input type="checkbox" name="yes"></label></div></td>
</tr>
</center>
</c:forEach>
</table>
<br><br>
<center><input type="submit" /></center>
</div>
</form>
</body>
</html>

我需要将用户使用复选框选择的每一行中的值从 jsp 打印到 servlet 中。这些行是动态添加的。如何从选定的行中检索所有值?

4

1 回答 1

0

建议这${row.mid}是唯一的,将value属性添加到您的复选框:

<input type="checkbox" name="yes" value="${row.mid}" />

然后,在处理表单的 servlet/JSP 中(顺便说一句。我<form>在您的页面中看不到任何标签!),使用

String[] selectedMIDs = request.getParameterValues('yes');

得到一个选定mid的数组。

于 2016-09-15T06:42:48.233 回答