有没有办法将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
?
答案 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;
}
}%>