1
resposta

erro no errors

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/";
    }
}
1 resposta

Insira aqui a descrição dessa imagem para ajudar na acessibilidade