Jsp 收集并将多个动态HTML输入的提交值保存回servlet
通过在列表中循环并在HTML输入标记中输出bean属性,我能够使用JSTL以JSP形式显示bean的Jsp 收集并将多个动态HTML输入的提交值保存回servlet,jsp,servlets,jstl,Jsp,Servlets,Jstl,通过在列表中循环并在HTML输入标记中输出bean属性,我能够使用JSTL以JSP形式显示bean的ArrayList <c:forEach items="${listOfBeans}" var="bean"> <tr> <td><input type="text" id="foo" value="${bean.foo}"/></td> <td><input type="text" id="ba
ArrayList
<c:forEach items="${listOfBeans}" var="bean">
<tr>
<td><input type="text" id="foo" value="${bean.foo}"/></td>
<td><input type="text" id="bar" value="${bean.bar}"/></td>
</tr>
</c:forEach>
如何对JSP进行编码,以便在页面提交时,更新的值位于
ArrayList
的相应项中?给定此简化模型:
public class Item {
private Long id;
private String foo;
private String bar;
// ...
}
如果${items}
是列表
,您可以这样做:
在servlet中,您可以通过request.getParameterValues()
从所有行收集
的所有值。只需在其上循环,然后通过id
获取各个输入
for (String id : request.getParameterValues("id")) {
String foo = request.getParameter("foo_" + id);
String bar = request.getParameter("bar_" + id);
// ...
}
您也可以在不使用id
的情况下完成这一切,并以数组的形式按名称获取所有输入,如soname=“foo”
和request.getParameterValues(“foo”)
,但请求参数的顺序不受您的控制。HTML表单将按顺序发送,但最终用户可以轻松地操纵顺序
这里不需要JavaScript混乱
另见:
<input type="hidden" name="id" value="${item.id}" />
<input name="foo_${item.id}" ... />
for (String id : request.getParameterValues("id")) {
String foo = request.getParameter("foo_" + id);
String bar = request.getParameter("bar_" + id);
// ...
}