鉴于此简化模型:public class Item {
private Long id;
private String foo;
private String bar;
// ...}
以下是您可以这样做的${items}方式List:
(注意fn:escapeXml()作为XSS攻击防范的重要性)
因此,基本上,您需要将项目的唯一标识符设置为每行中的隐藏输入字段,如上面的代码段所示:
然后你应该将它id作为name同一行中所有输入字段的后缀,例如:
在servlet中,您可以收集所有行的所有值request.getParameterValues()。只需循环它,然后通过获取单个输入id。for (String id : request.getParameterValues("id")) {
String foo = request.getParameter("foo_" + id);
String bar = request.getParameter("bar_" + id);
// ...}
你也可以做到这一切,而不该id抢的名字的所有输入这样一个数组name="foo"和request.getParameterValues("foo"),但请求参数的顺序是不是你的控制之下。HTML表单将按顺序发送,但最终用户可以轻松地操作订单。
这里不需要JavaScript乱七八糟。
也可以看看: