如何将for循环中的值从jsp传递到servlet,反之亦然

时间:2013-06-05 03:34:26

标签: jsp for-loop

有没有办法将for循环中的txtbox中的值从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

1 个答案:

答案 0 :(得分:1)

要获取具有相同名称的多个值,请使用返回String数组的getParameterValues()

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;
}
}%>