2

有没有办法将值从 txtbox 中的 for 循环从 JSP 传递到 servlet 并再次返回?以下是我的jsp页面中的部分代码

<% 
 DetailsMod bean = null;
 List resultList = (List) session.getAttribute("list");
 int count1=-1;
 String value2 = "";
 if(resultList.size() > 0 )  {  
 int rowNum = 1;
  for(int i=0; i<resultList.size(); i++){
   bean = (DetailsMod) resultList.get(i);
%>
<input type="text" name="tbx_cost" value="<%=bean.getCost()%>"/>

<% count1 = i;
}
}%>

假设 resultList 返回 2 作为值,那么将有 2 个文本框。如果用户在第一个框中输入 2000,在第二个框中输入 3000,我如何存储这些值以便在 servlet 中检索它?我尝试在 servlet 中使用以下代码:

 double cost = Double.parseDouble(request.getParameter("tbx_cost"));

但它没有给我两个值,而是只返回第一个值。我有办法解决这个问题吗?

如果用户要再次编辑数据,一旦在 servlet 中检索到,我如何将在 servlet 中检索到的这些值传递回 JSP tbx_cost

4

1 回答 1

1

要获取具有相同名称的多个值,请使用getParameterValues()which 返回一个字符串数组。

String []costArray = request.getParameterValues("tbx_cost");

附带说明一下,在这里您将无法跟踪值。因此,您可能希望将一些带有分隔符的唯一标识符附加到值,然后在 servlet 中将其分隔。

例子:

<% 
 DetailsMod bean = null;
 List resultList = (List) session.getAttribute("list");
 int count1=-1;
 String value2 = "";
 if(resultList.size() > 0 )  {  
 int rowNum = 1;
  for(int i=0; i<resultList.size(); i++){
   bean = (DetailsMod) resultList.get(i);
   value2 = bean.getCost() + "_" + bean.getId(); // Example 
%>
<input type="text" name="tbx_cost" value=""/>
<input type="hidden" name="txt_cost" value="<%=value2%>"/>

<% count1 = i;
}
}%>
于 2013-06-05T03:51:19.890 回答