将每个列表发送到控制器(thymeleaf Spring Boot)

时间:2017-09-28 15:51:23

标签: java spring-boot thymeleaf

我需要帮助将List produtos作为参数发送到我的控制器。

<div class="panel-body">
    <div th:each="produto : ${produtos}" class="form-group" id="produtos">
       <label th:text="${produto.nome}" class="col-sm-2 control-label">
       </label>
       <div class="col-sm-1">
           <input type="text" class="form-control js-number" id="quantPedido" 
           th:field="*{produto.quantPedido}"/>
       </div>
    </div>
</div>

我的控制器

@RequestMapping(method = RequestMethod.POST)
public String salvar(@Validated Pedido pedido, List<Produto> produtos, Errors errors, RedirectAttributes attributes) {


}

非常感谢!

1 个答案:

答案 0 :(得分:0)

您需要将您的产品列表转换为某个bean,然后将该bean发送到html并填充它。例如:

豆:

public class Pedido{
    @Getter @Setter
    private List<Product> products = new ArrayList();
    //extra attributes
}

在您的控制器中:

ModelAndView mav = new ModelAndView("yourView");
Pedido pedido = new Pedido();
mav.addObject("pedido", pedido);

在你的HTML中:

<form th:object="${pedido}" th:action="@{/savePedido}" method="POST">
    //...
    <div th:each="produto : ${produtos}" class="form-group" id="produtos">
       <label th:text="${produto.nome}" class="col-sm-2 control-label">
       </label>
       <div class="col-sm-1">
           <input class="form-control js-number" id="quantPedido" th:field="*{products[__${produtoStat.index}__].quantPedido}"/>
       </div>
    </div>
    //...                                
</form>