Saltar al contenido

Spring Boot y página de error 404 personalizada

Solución:

En Spring Boot 1.4.x puede agregar una página de error personalizada:

Si desea mostrar una página de error HTML personalizada para un código de estado dado, agregue un archivo a un /error carpeta. Las páginas de error pueden ser HTML estático (es decir, agregadas en cualquiera de las carpetas de recursos estáticos) o construidas con plantillas. El nombre del archivo debe ser el código de estado exacto o una máscara de serie.

Por ejemplo, para asignar 404 a un archivo HTML estático, la estructura de su carpeta se vería así:

src/
 +- main/
     +- java/
     |   + <source code>
     +- resources/
         +- public/
             +- error/
             |   +- 404.html
             +- <other public assets>

Estás usando Thymeleaf, y Thymeleaf puede manejar errores sin un controlador.

Para una página de error genérica, esta página de Thymeleaf debe nombrarse como error.html

y debe colocarse debajo src/main/resources > templates > error.html

Thymleaf error.html

Para páginas de error específicas, debe crear archivos con el nombre de código de error http en una carpeta llamada error, como: src/main/resources/templates/error/404.html.

new ErrorPage (HttpStatus.NOT_FOUND, “/404.html“)

Ese /404.html representa el Ruta de URL para redireccionar, no el nombre de la plantilla. Dado que insiste en usar una plantilla, debe crear un controlador que maneje el /404.html y hace tu 404.html reside en src/main/resources/templates:

@Controller
public class NotFoundController {
    @RequestMapping("/404.html")
    public String render404(Model model) {
        // Add model attributes
        return "404";
    }
}

También puede reemplazar estos controladores de renderizador de solo vista con un Ver controlador:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/404.html").setViewName("404");
    }
}

Además, ¿es posible utilizar plantillas y no solo páginas estáticas para páginas de error personalizadas?

Si es posible. Pero las páginas no encontradas suelen ser estáticas y utilizan una plantilla en lugar de HTML antiguos sencillos no tendría mucho sentido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *