2

for ループで txtbox から値を JSP からサーブレットに渡したり戻したりする方法はありますか? 以下は私の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 を入力し、2 番目のボックスに 3000 を入力した場合、サーブレットで取得するためにこの値を保存するにはどうすればよいですか? サーブレットで次のコードを使用してみました。

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

しかし、両方の値を返す代わりに、最初の値のみを返します。この問題を解決する方法はありますか?

また、ユーザーがデータを再度編集する場合にサーブレットで取得した値を、サーブレットで取得した値を JSP に戻すにはどうすればよいtbx_costですか?

4

1 に答える 1

1

同じ名前で複数の値を取得するgetParameterValues()には、文字列配列を返す which を使用します。

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

ちなみに、ここでは値を追跡することはできません。そのため、セパレーター付きの一意の識別子を値に追加してから、サーブレットで分離することができます。

例:

<% 
 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 に答える