繁体   English   中英

ServletRequest.getParameterValues仅返回第一个值

[英]ServletRequest.getParameterValues returns only first value

我正在通过s1是循环迭代器的循环将转换为字符串值的整数分配给隐藏的输入。

<% int k=0; 
String s1 = null;
while(mar.next()){ 
k++;
s1 = Integer.toString(k);%>
<table>
<tr><td><b>User Name </b> </td> <td><%= mar.getString("UserName")  %></td></tr>
<tr><td><b>Type </b></td><td> <%= mar.getString("Type")  %></td></tr>
<tr><td><b>Complain </b></td> <td><%= mar.getString("Complaint")  %></td></tr>
<tr><td><b>Status </b> </td> <td><%= mar.getString("Status")  %></td></tr>
<tr><td><b>Date </b> </td> <td><%= mar.getString("Date") %></td></tr>
</table> 
<form action = "demo1.jsp" method = "post">
<% out.println(mar.getString("Id")); %>
<input type="radio"  name = "<%= mar.getString("Id") %>"value="pending"checked>Pending
<input type="radio"  name = "<%= mar.getString("Id") %>" value="done">Done
<input type="submit" name = "B" id = "submit" >
<input type = "hidden" name = "try" value = <%= s1 %> >
<% out.println(s1); %>
</form>

<br>
<br>
<%
 }

下面的代码应返回一个从1到3的值(s1的值)的字符串

String[] vals;
vals = new String[3];
out.println(vals.length);
vals = request.getParameterValues("try");

out.println(vals.length);

for(int i=0; i<vals.length; i++){
    out.println("Hy");
    out.println(vals[i]);
} 

它仅返回一个值,即第一个值,并且打印vals.length会打印1。

您正在创建三种形式。 对于每种表格,都会有单独的请求。 由于每种形式仅包含一个隐藏的输入,因此对于以下代码,每次请求始终将仅获得一个值

 request.getParameterValues("try");

现在,如果您必须一键提交所有表格。 这里这里是答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM