JSP 使用 <c:forEach> 動態生成多行表單數據,每行包含多個輸入框,提交到 Servlet 批量處理。
<c:forEach items="${list}" var="item" varStatus="status">
<input name="id_${status.index}" value="${item.id}" />
<input name="name_${status.index}" value="${item.name}" />
<input name="price_${status.index}" value="${item.price}" />
</c:forEach>
int rowCount = Integer.parseInt(request.getParameter("rowCount")); // 隱藏域傳總行數
for (int i = 0; i < rowCount; i++) {
String id = request.getParameter("id_" + i);
String name = request.getParameter("name_" + i);
String price = request.getParameter("price_" + i);
// 非空校驗、業務處理...
}
<input name="id" value="${item.id}" /> // 所有行同名
<input name="name" value="${item.name}" />
<input name="price" value="${item.price}" />
// Servlet
String[] ids = request.getParameterValues("id");
String[] names = request.getParameterValues("name");
String[] prices = request.getParameterValues("price");
for (int i = 0; i < ids.length; i++) {
// 同索引屬於同一行
}
ids.length 即為行數。