【问题标题】:Send each list to controller (thymeleaf Spring Boot)将每个列表发送到控制器(thymeleaf Spring Boot)
【发布时间】:2018-03-10 10:49:42
【问题描述】:

我需要帮助将 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) {


}

非常感谢!

【问题讨论】:

标签: java spring-boot thymeleaf


【解决方案1】:

您需要将您的产品列表变形为一些 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-31
    • 2020-10-19
    • 2019-09-29
    • 2015-09-04
    • 2019-02-24
    • 2018-11-17
    • 2020-04-28
    • 2016-08-05
    相关资源
    最近更新 更多