如何在Java中处理动态生成表单中的POST数据?
我正在尝试使用动态生成的表单更新信息。显然,我可以做到以下几点,一切都很简单:如何在Java中处理动态生成表单中的POST数据?,java,jsp,servlets,Java,Jsp,Servlets,我正在尝试使用动态生成的表单更新信息。显然,我可以做到以下几点,一切都很简单: <% String[] names = {"John", "Paula", "Mark", "Maria"}; for(String name: names) %> <form method="post" action="SavePersonalDetails"> <p><%= name %> <input type="t
<%
String[] names = {"John", "Paula", "Mark", "Maria"};
for(String name: names)
%>
<form method="post" action="SavePersonalDetails">
<p><%= name %>
<input type="text" name="age">
<input type="submit" value="Save">
</form>
<%
}
%>
但是,我无法找到一种不麻烦的方法来做到这一点,只向用户显示一个提交按钮,如下例所示:
<form method="post" action="SavePersonalDetails">
<%
String[] names = {"John", "Paula", "Mark", "Maria"};
for(String name: names)
%>
<p><%= name %>
<input type="text" name="age">
<%
}
%>
<input type="submit" value="Save">
</form>
有办法做到这一点吗?使用从getter获得的第二种方法
String[] ages = request.getParameterValues("age");
一系列的年龄
值在数组中的位置与页面中使用的位置相同,因此您必须在servlet中使用相同的名称数组才能将年龄与正确的人关联
jsp代码似乎是正确的您需要将参数名与所讨论的用户关联起来。有很多方法可以做到这一点,通常是在输入元素名称中以某种方式嵌入ID或限定符,例如
<input type="text" name="age[0]">
<input type="text" name="age[John]">
或
或
等等
然后在参数上迭代,查找与所讨论的参数startWith
相关的名称,例如age
。您可以在下划线上拆分参数名称,或拉出索引符号等,以便知道该参数的值中包含了谁的年龄
这避免了依赖于参数排序,也使得使用JavaScript操作更加容易:每个元素都有一个唯一的非位置标识符。定义“凌乱”。通过使用scriptlet,您已经变得“混乱”;相比之下,循环似乎是多余的。顺便说一句,适当的压痕对减少吸吮有很大帮助。
<input type="text" name="age_0">
<input type="text" name="age_John">
<input type="text" name="age['John']">