【发布时间】:2017-07-27 21:21:56
【问题描述】:
Spring Boot 1.5.4
我需要在 POST 方法中使用List<OrderTo>。
控制器:
@PostMapping("/orderlist")
public String confirmOrder(
, @RequestParam(name = "id", required = false) List<Integer> idL
, @RequestParam(name = "selected", required = false) List<Integer> selectedL
, @RequestParam(name = "typeName", required = false) List<String> typeNameL
// ...another Lists
// ,@ModelAttribute List<OrderTo> notWork
) {
// Collect All Lists
我发现的最佳选择是具有类字段的列表。也许我错过了什么。
查看:
<form action="orderlist" method="POST" id="catalogform">
<table class="table table-hover table-bordered table-striped table-condensed">
<tr>
<th><#--...--></th>
</tr>
<#list coffeetypelist as type> <#--Freemarker-->
<tr>
<td>
<input type="hidden" name="id" value="${type.id}">
<input type="checkbox" name="selected" value="${type.id}" >
</td>
<td><input type="hidden" name="typeName" value="${type.typeName}">${type.typeName}</td>
<td><input type="hidden" name="price" value="${type.price}">${type.price} TGR</td>
<td><input type="number" size="3" name="quantity" min="0" step="1"/></td>
</tr>
<#--...-->
</#list>
<#--...-->
型号:
public class OrderTo{
private int id;
private String typeName;
private int quantity;
private Double price;
private boolean selected;
//+constructors +getters + setters
这可以在没有额外收集操作的情况下获取 List 吗?怎么样?
【问题讨论】:
-
你需要额外的包含
List<OrderTo>的包装类,并像<input type="hidden" name="wrapper.orderTo[0].typeName" value="${type.typeName}">一样映射它,试试看
标签: spring-mvc post request-mapping