同名輸入框自動綁定為 List/數組:
<c:forEach items="${cart.items}" varStatus="vs">
<input type="hidden" name="items[${vs.index}].productId" value="${item.productId}"/>
<input type="number" name="items[${vs.index}].quantity" value="${item.quantity}"/>
</c:forEach>
public class CartForm {
private List items = new ArrayList<>();
// getter/setter
}
@Controller
public class OrderController {
@PostMapping("/submit")
public String submit(@ModelAttribute CartForm form) {
// form.items 已自動填充
}
}
items[0].productId、items[1].productId... Spring MVC DataBinder 自動解析為 List。OrderItem 需有無參構造器、屬性對應 setter。