Preciso criar uma tela de Vendas, que receba Produtos e Clientes para seleção, seleciono um cliente e um produto e faço o envio dos mesmo através de um Post para Vendas. Vendas Recebe o id de cliente e um id de produtos. Criei um select options que exibe o os clientes e os produtos para seleção, porém não estou conseguindo receber o id de ambos através do Post. Ao executar que os campos de id de cliente e produto estão nulos.
HTML
<div class="panel panel-default"> <div class="panel-heading"> <h1 class="panel-title">Novo título</h1> </div> <div class="form-group"> <label for="status" class="col-sm-2 control-label">Status</label> <div class="col-sm-2"> <select class="form-control" name="status"> <option th:each="cliente : $ {addCliente}" th:value="$ {cliente.id}" th:text="$ {cliente.nome}"></option> </select> </div> </div> <div class="form-group"> <label for="status" class="col-sm-2 control-label">Status</label> <div class="col-sm-2"> <select class="form-control" name="status"> <option th:each="produto : $ {addProduto}" th:value="$ {produto.id}" th:text="$ {produto.nome}"></option> </select> </div> </div> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-primary">Salvar</button> </div> </div> </div>
VendasController
@Autowired private ClientesService clientesService; @Autowired private VendasRepository vendasRepo; @Autowired private ProdutosRepository produtosRepo; @RequestMapping("/novo") public ModelAndView novo() { ModelAndView mv = new ModelAndView("cadastrarVenda"); return mv; } @RequestMapping(method = RequestMethod.POST) public ModelAndView salvar(Vendas vendas) { vendasRepo.save(vendas); ModelAndView mv = new ModelAndView("cadastrarVenda"); return mv; } @ModelAttribute("addCliente") public List<Clientes> addCliente() { return clientesService.listarTodos(); } @ModelAttribute("addProduto") public List<Produtos> addProduto() { return produtosRepo.findAll(); }
}