我已经设法构建静态错误页面并使用这个 bean 重定向到它们:
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
if (optiuniEnvironment.equals("development")) {
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, "/404.html");
container.addErrorPages(error401Page, error404Page, error500Page);
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
但是,现在我想构建一个使用控制器功能的自定义页面。
所以在我的控制器中,我有类似的东西
@RequestMapping("/404.html")
String pageNotFound(Model model, HttpServletRequest request)
{
return "404";
}
Run Code Online (Sandbox Code Playgroud)
并希望在遇到 HttpStatus 404 时重定向到它。
我相信答案是配置 DispatcherServlet,但不确定。有任何想法吗?谢谢!
(如果可能,请使用基于 java 的配置,而不是 xml)