如何将JSP中选定的行发送到Java控制器?
我有一个如何将JSP中选定的行发送到Java控制器?,java,sql,jsp,servlets,Java,Sql,Jsp,Servlets,我有一个success.jsp页面,该页面显示多行和多列,每行有一个编辑按钮和一个复选框。如果用户单击编辑按钮,则选中复选框。 下面是success.jsp: <%@page import="mymvc.model.TableColumns"%> <%@page import="java.util.ArrayList"%> <%@page import="java.util.Iterator"%> <%@taglib prefix="c" uri="ht
success.jsp
页面,该页面显示多行和多列,每行有一个编辑按钮和一个复选框。如果用户单击编辑按钮,则选中复选框
。
下面是success.jsp:
<%@page import="mymvc.model.TableColumns"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.Iterator"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%--
Document : success
Created on : Jul 8, 2014, 1:43:17 PM
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Success</title>
<script type="text/javascript">
function validate(n) {
v = document.getElementById("check"+n)
v.checked = !v.checked;
x = document.getElementById("typeId"+n).removeAttribute('readonly');
y = document.getElementById("paramSeq"+n).removeAttribute('readonly');
z = document.getElementById("paramName"+n).removeAttribute('readonly');
}
</script>
</head>
<body>
<form action="DBController" method="post">
Welcome ${requestScope['user'].username}.
<table>
<tr style="background-color:#f0a64e;">
<th class="border">ID</th>
<th class="border">Param Sequence</th>
<th class="border">Param Name</th>
</tr>
<c:forEach var="element" items="${requestScope['listData']}" varStatus="status">
<tr>
<td><input id="typeId${status.index}" value="${element.typeId}" readonly="true"</td>
<td><input id="paramSeq${status.index}" value="${element.paramSeq}" readonly="true"</td>
<td><input id="paramName${status.index}" value="${element.paramName}" readonly="true"</td>
<td>
<input id="edit${status.index}" type="button" value="Edit" name="edit" onclick="validate(${status.index})"</input>
</td>
<td><input type="checkbox" id="check${status.index}" name="selectedItems" value="<c:out value="${status.index}"/>"</td>
</tr>
</c:forEach>
</table>
<input type="submit" value="Update" name="update" />
</form>
</body>
</html>
登录成功
函数验证(n){
v=document.getElementById(“检查”+n)
v、 选中=!v.checked;
x=document.getElementById(“typeId”+n).removeAttribute(“只读”);
y=document.getElementById(“paramSeq”+n).removeAttribute('readonly');
z=document.getElementById(“paramName”+n).removeAttribute('readonly');
}
欢迎${requestScope['user'].username}。
身份证件
参数序列
参数名称
我认为您缺少的是,您为每个输入类型提供了一个唯一的id,但是您没有指定输入类型的名称,并且在servlet中您试图按名称获取值
因此,请将名称与id一起添加,以便在servlet中获得它们
<c:forEach var="element" items="${requestScope['listData']}" varStatus="status">
<tr>
<td><input name="typeId${status.index}" value="${element.typeId}" readonly="true"</td>
<td><input name="paramSeq${status.index}" value="${element.paramSeq}" readonly="true"</td>
<td><input name="paramName${status.index}" value="${element.paramName}" readonly="true"</td>
<td>
<input id="edit${status.index}" type="button" value="Edit" name="edit" onclick="validate(${status.index})"</input>
</td>
<td><input type="checkbox" id="check${status.index}" name="selectedItems" value="<c:out value="${status.index}"/>"</td>
</tr>
</c:forEach>
</table>
<c:forEach var="element" items="${requestScope['listData']}" varStatus="status">
<tr>
<td><input name="typeId${status.index}" value="${element.typeId}" readonly="true"</td>
<td><input name="paramSeq${status.index}" value="${element.paramSeq}" readonly="true"</td>
<td><input name="paramName${status.index}" value="${element.paramName}" readonly="true"</td>
<td>
<input id="edit${status.index}" type="button" value="Edit" name="edit" onclick="validate(${status.index})"</input>
</td>
<td><input type="checkbox" id="check${status.index}" name="selectedItems" value="<c:out value="${status.index}"/>"</td>
</tr>
</c:forEach>
</table>