我有一张提交6个号码的表格。他们的名字相同。
<TD><INPUT TYPE=TEXT NAME=valores VALUE="${bean.values}" maxlength=2></TD>
<TD><INPUT TYPE=TEXT NAME=valores VALUE="${bean.values}" maxlength=2/></TD>
<TD><INPUT TYPE=TEXT NAME=valores VALUE="${bean.values}" maxlength=2/></TD>
<TD><INPUT TYPE=TEXT NAME=valores VALUE="${bean.values}" maxlength=2/></TD>
<TD><INPUT TYPE=TEXT NAME=valores VALUE="${bean.values}" maxlength=2/></TD>
<TD><INPUT TYPE=TEXT NAME=valores VALUE="${bean.values}" maxlength=2/></TD>
我在Servlet中接收它们是这样的:
String[] values= request.getParameterValues("values");
for(int i = 0; i < values.length; i++)
{
hello.setValues(values[i]);
}
request.setAttribute("bean", hello);
request.getRequestDispatcher("/Test.jsp").forward(request,response);
}
他们现在在Bean类中,我使用setValues来设置它们。
我想要做的是在表格上收到相同的数字。我使用了${bean.values}
,但我重复了1个数字,而不是完整的输入数组。
谢谢!
答案 0 :(得分:3)
如果您打算在JSP中绘制整个values数组,请尝试以下方法:
<c:forEach var="value" items="${bean.values}">
<td><input type="text" name="valores" value="${value}" maxlength="2"></td>
</c:forEach>
这适合你吗?
答案 1 :(得分:1)
在使用值填充表单时出错:
String[] values= request.getParameterValues("values"); // assuming 6 values
for(int i = 0; i < values.length; i++) // do 6 iterations
{
hello.setValues(values[i]); // I guess #setValues is expecting an array of values
}
因此,您的代码应该输出RequestParameter数组“值”的最后一个数字。但是您希望显示整个数字数组,因此您的代码必须看起来更像这样:
String[] values= request.getParameterValues("values"); // Receive the array from the request
hello.setValues(values); // Add the whole array to the bean
根据Jorge_B的回答,您可以使用forEach循环通过JSTL c ore在JSP上输出数组:
<c:forEach var="value" items="${bean.values}">
<td><input type="text" name="valores" value="${value}" maxlength="2"></td>
</c:forEach>