初学Spring Boot。今天想为Spring Boot所建项目,创建一个自定义的404/500页面。
之前maven项目通过在web.xml文件中定义:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<error-page>
<error-code>404</error-code>
<location>/building.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
</web-app>
而Spring Boot项目中没有web.xml文件,那么该怎么自定义404等Error页面了?
通过网上查找方法:
首先创建一个Config类:
/**
* 自定义404/500等错误页面config
*
* @author Dchh
* @date 2018年6月7日
*/
@Configuration
public class ErrorPageConfig
{
public EmbeddedServletContainerCustomizer containerCustomizer()
{
return new EmbeddedServletContainerCustomizer()
{
@Override
public void customize(ConfigurableEmbeddedServletContainer container)
{
ErrorPage error401Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html");
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
ErrorPage error500Page = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
container.addErrorPages(error401Page, error404Page, error500Page);
}
};
}
}
第二步:创建一个Controller:
/**
* 自定义404/500等错误页面Controllor层
*
* @author Dchh
* @date 2018年6月7日
*/
@Controller
public class ErrorPageControllor
{
@GetMapping("/404")
public String notFound()
{
return "error/404";
}
}
第三步:将对应页面放在目录下。然并卵?问题依旧没有解决。
可能是自己创建的问题,最后并没有解决问题,错误如下:
EmbeddedServletContainerCustomizer cannot be resolved to a type
找不到该类。缺少对应jar包。通过fix project setup添加jar包。
、
好了,代码不到错了,运行后项目后发现:
折腾半天,最后偶然发现发现根本不需要配置什么,只需要将404页面放在正确的对应目录下即可:
搞定!!!