3
respostas

Configurando HTTP Status 404

Como eu posso configurar HTTP Status 404 para retornar uma view especifica.

3 respostas

Olá Carlos, tudo bem?

Uma vez fiz um projeto para retornar uma página customizada ao acontecer 404.

No controller eu colocava o código:

class Controller {
    // ...
@ResponseStatus(HttpStatus.NOT_FOUND)
public String retornaPaginaCustomizada() {
        return "[página]";
    }
}

Segue link da doumentação do Spring, falando mais a respeito: https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc

Espero ter ajudado!

Abs

E ai Rafael tranquilo? Então, eu criei um método com essa anotação porém não deu certo, ainda continua aparecendo a página 404 do Tomcat.

package br.com.casadocodigo.loja.controllers;

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.servlet.ModelAndView;

@ControllerAdvice
public class ExceptionHandlerController {

    @ExceptionHandler(Exception.class)
    public ModelAndView ErroGenerico(Exception exception) {
        return new ModelAndView("erro");
    }

    @ResponseStatus(HttpStatus.NOT_FOUND)
    public String notFound() {
        return "erro";
    }

}

Olá Carlos, tudo bem?

No projeto que tinha realizado, com o Spring 3, precisei colocar no web.xml o mapeamento da página de erro, mas pelo que eu saiba no Spring 4 essa configuração não seria obrigatória:

<error-page>
    <error-code>404</error-code>
    <location>/WEB-INF/pages/404.jsp</location>
 </error-page>

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/WEB-INF/view/erro_customizado.jsp</location>
</error-page>

Encontrei um código na internet parecido com o que realizei na época, segue link:

https://www.mkyong.com/spring-mvc/spring-mvc-exception-handling-example/

Espero que ajude!

Abs

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software