SpringBoot自定义错误页面
问题
我们用springboot
开发网站的时候难免会遇到需要自定义错误页面的场景,如403页面、404页面、500页面等,因为一般的服务器程序自带的默认错误页面确实有些丑或错误页面的风格与网站整体风格不挡,比如tomcat
的错误页面
解决
准备错误页面
比如我这里准备了三个常见的错误页面
创建Controller
package cn.kevinlu98.cloud.freewindcloud.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
/**
* Author: Mr丶冷文
* Date: 2022-01-08 15:15
* Email: kevinlu98@qq.com
* Description:
*/
@Controller
public class ErrorController {
@GetMapping("/403")
public String page403() {
return "error/403";
}
@GetMapping("/404")
public String page404() {
return "error/404";
}
@GetMapping("/500")
public String page500() {
return "error/500";
}
}
将WebServerFactoryCustomizer放入spring容器中
我们将错误页面的路由配置到WebServerFactoryCustomizer
里并将其放入spring
容器
package cn.kevinlu98.cloud.freewindcloud.config;
import org.springframework.boot.web.server.ConfigurableWebServerFactory;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
/**
* Author: Mr丶冷文
* Date: 2022-01-08 15:09
* Email: kevinlu98@qq.com
* Description:
*/
@Configuration
public class ErrorPageConfig {
@Bean
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
return factory -> {
factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404"), new ErrorPage(HttpStatus.FORBIDDEN, "/403"), new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500"));
};
}
}
效果
我们来看看效果
常瑞 游客 2022-01-11 17:26 回复
可以可以