Estou com problemas nessa aula.
Como o professor consegue acessar /pedido/novo se ela é somente POST?
Se eu acesso pedido/formulario, tomo uma exception
Neither BindingResult nor plain target object for bean name 'novoPedidoDTO' available as request attribute
.
Se eu entro em /pedido/novo, tomo um Request method 'GET' not supported
.
Seria talvez uma mudança de versão desde que a aula foi lançada?
HTML:
<form th:object="${novoPedidoDTO}" method="POST" action="novo">
<div>
<label for="nomeProduto">Produto</label>
<input th:field="*{nomeProduto}">
<small>Informe o nome do produto.</small>
</div>
<div>
<label for="urlProduto">URL do produto</label>
<input th:field="*{urlProduto}">
<small>Informe a URL do produto.</small>
</div>
<div>
<label for="urlImagem">URL do produto</label>
<input th:field="*{urlImagem}">
<small>Informe a URL da imagem do produto.</small>
</div>
<div>
<label for="descricao">Descrição</label>
<textarea th:field="*{descricao}"></textarea>
<small>Informe uma descrição do produto.</small>
</div>
<input type="submit" value="Cadastrar">
</form>
Controller:
@GetMapping("formulario")
public String formulario() {
return "pedido/formulario";
}
@PostMapping("novo")
public String novo(@Valid NovoPedidoDTO novoPedido, BindingResult result) {
if (result.hasErrors()) {
return "pedido/formulario";
}
Pedido pedido = novoPedido.toPedido();
pedidoRepository.saveAndFlush(pedido);
return "pedido/formulario";
}