Não estou conseguindo fazer a validação da requisição no controller, o metódo hasErros() está sempre retornando false.
Controller:
package br.com.alura.mudi.controller;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import br.com.alura.mudi.dto.RequisicaoNovoPedido;
import br.com.alura.mudi.model.Pedido;
import br.com.alura.mudi.repository.PedidoRepository;
@Controller
@RequestMapping("pedido")
public class PedidoController {
@Autowired
private PedidoRepository pedidoRepository;
@GetMapping("formulario")
public String formulario() {
return "pedido/formulario";
}
@PostMapping("novo")
public String novo(@Valid RequisicaoNovoPedido requisicao, BindingResult result) {
System.out.println(result.hasErrors());
if(result.hasErrors()) {
return "pedido/formulario";
}
Pedido pedido = requisicao.toPedido();
pedidoRepository.save(pedido);
return "home";
}
}
e aqui a classe DTO:
package br.com.alura.mudi.dto;
import javax.validation.constraints.NotBlank;
import br.com.alura.mudi.model.Pedido;
public class RequisicaoNovoPedido {
@NotBlank
private String nomeProduto;
@NotBlank
private String urlProduto;
@NotBlank
private String urlImagem;
private String descricao;
public String getNomeProduto() {
return nomeProduto;
}
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto;
}
public String getUrlProduto() {
return urlProduto;
}
public void setUrlProduto(String urlProduto) {
this.urlProduto = urlProduto;
}
public String getUrlImagem() {
return urlImagem;
}
public void setUrlImagem(String urlImagem) {
this.urlImagem = urlImagem;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Pedido toPedido() {
return new Pedido(nomeProduto, urlProduto, urlImagem, descricao);
}
}
Estou usando a versão 2.5.5 do Spring e também já adicionei a depencia no pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Alguma ideia de como resolver?