método onError() não está fazendo o redirect.
package com.everis.delivery.controller;
import com.everis.delivery.dto.ProdutoRequest;
import com.everis.delivery.model.Produto;
import com.everis.delivery.repository.ProdutoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.ExceptionHandler;
import java.util.List;
import java.util.Optional;
@Controller
@RequestMapping("admin")
public class AdminController {
@Autowired
ProdutoRepository produtoRepository;
@GetMapping
public String admin(Model model) {
long countProdutos = produtoRepository.count();
model.addAttribute("countProdutos", countProdutos);
return "admin/home";
}
@GetMapping("produtos")
public String produtos(Model model, BindingResult result) {
if(result.hasErrors()){
return "admin/produtos";
}
List<Produto> produtos = produtoRepository.findAll();
model.addAttribute("produtos", produtos);
return "admin/produtos";
}
@PostMapping("/produtos/add")
public String addProduto( ProdutoRequest request, BindingResult result) {
Produto produto = request.toProduto();
produtoRepository.save(produto);
return "redirect:/admin/produtos";
}
//Existe uma anotação chamada de “@ExceptionHandler”, onde nós passamos qual é a
// exceção que queremos mapear. É a “IllegalArgumentException”
@ExceptionHandler(IllegalArgumentException.class)
public String onError(){
return "redirect:/admin/";
}
}