Gostaria de uma tela de fazer pedidos, ai teria que opção pra escolher a mesa, a categoria e depois o adicionar o produto, como seria o Controller pra retornar isso na página?
@GetMapping("/cadastro")
public String preSalvar(@ModelAttribute(“pedido”) Pedido pedido) {
return “/pedido/add”;
}
@PostMapping("/salvar")
public String salvar(@Valid @ModelAttribute("pedido") Pedido pedido, BindingResult result, RedirectAttributes attr) {
if (result.hasErrors()) {
return "/pedido/add";
}
pedidoService.salvar(pedido);
attr.addFlashAttribute("mensagem", "Pedido realizado com sucesso.");
return "redirect:/pedidos/listar";
}
Cara, sem sacanagem sua pergunta está difícil de ser compreendida.
Vamos lá, se você quer definir alguns “parâmetros” antes de fazer o pedido de fato você deve:
Ao abrir a tela “cadastro”, passar uma lista com as mesas disponíveis, você pode exibir isso em uma tag<select>.
Categoria, não sei o que significa isso, mas acredito que possa fazer da mesma forma se caso for varias.
Você pode usar Jquery para ir liberando os campos a partir da seleção que você fizer.
Humm.
Se você utilizar o exemplo que te dei, ficaria dessa forma:
Com isso você estaria passando as mesas e as categorias para sua pagina de pedidos.
@RequestMapping("/cadastro")
public ModelAndView preSalvar(Pedido pedido) {
List<Mesa> mesas= mesaDAO.listaMesasDisponiveis();
List<Categoria> categorias = categoriaDAO.listaCategorias();
ModelAndView model = new ModelAndView("/pedido/add");
model.addObject("mesas", mesas);
model.addObject("categorias ", categorias );
return model;
}
O que você está querendo então é pegar o código da Mesa e Categoria quando submeter o seu pedido.
Nesse caso você precisa usar a tag do Spring na sua JSP. <%@ taglib prefix=“form” uri=“http://www.springframework.org/tags/form”%>
Porem precisa esta mapeado em sua Classe Pedido o acesso ao ID da Mesa e Categoria.
Exp:
Class Pedido{
private Mesa mesa;
private Categoria categoria;
...get
.. set
}
Pesquise sobre como utilizar o form do Spring na JSP.
Fazendo dessa forma você conseguira ter acesso ao ID da mesa sem a necessidade de passar vários parâmetros no seu método Salvar.