如你所知,在 XML 中,配置它的方式是:
<error-page>
<error-code>404</error-code>
<location>/my-custom-page-not-found.html</location>
</error-page>
但我还没有找到在 Java 配置中执行此操作的方法。我尝试的第一种方法是:
@RequestMapping(value = "/**")
public String Error(){
return "error";
}
它似乎可以工作,但是在检索资源时会发生冲突。
有办法吗?
最佳答案
在 Spring Framework 中,有多种处理异常的方法(尤其是 404 错误)。这是 documentation link .
- 首先,您仍然可以在 web.xml 中使用
error-page
标签,自定义错误页面。这是 example . 第二,你可以为所有的 Controller 使用一个
@ExceptionHandler
,像这样:@ControllerAdvice public class ControllerAdvisor { @ExceptionHandler(NoHandlerFoundException.class) public String handle(Exception ex) { return "404";//this is view name } }
为此,请设置 throwExceptionIfNoHandlerFound web.xml 中
DispatcherServlet
的属性为 true:<init-param> <param-name>throwExceptionIfNoHandlerFound</param-name> <param-value>true</param-value> </init-param>
您还可以将一些对象传递给错误 View ,请参阅 javadoc为此。
关于java - 使用 Java 配置在 Spring 中重定向 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23574869/