Java 如何在Spring引导错误控制器中保留默认变量

Java 如何在Spring引导错误控制器中保留默认变量,java,spring,thymeleaf,Java,Spring,Thymeleaf,我定义了以下error.html页面: <div><b>Path:</b> <span th:text="${path}" /></div> <div><b>Status:</b> <span th:text="${status}" /></div> <div><b>Message:</b> <span th:text="${mess

我定义了以下
error.html
页面:

<div><b>Path:</b> <span th:text="${path}" /></div>
<div><b>Status:</b> <span th:text="${status}" /></div>
<div><b>Message:</b>  <span th:text="${message}" /></div>

我如何重新获得对默认
error.html
模板中通常定义的变量的访问权限?

也许更有经验的人可以给出更好的答案,但以下是我找到的唯一方法:

@RequestMapping("/error")
public String handleError(HttpServletRequest request, Model model, Exception ex) {

    Object path = request.getAttribute("javax.servlet.forward.request_uri");
    Object status = request.getAttribute("javax.servlet.error.status_code");
    Object message = request.getAttribute("javax.servlet.error.message");

    model.addAttribute("path", path);
    model.addAttribute("status", status);
    model.addAttribute("message", message);

    return "error";
}
换句话说,您必须重新定义通常在没有编写新控制器的情况下获得的所有变量

@RequestMapping("/error")
public String handleError(HttpServletRequest request, Model model, Exception ex) {

    Object path = request.getAttribute("javax.servlet.forward.request_uri");
    Object status = request.getAttribute("javax.servlet.error.status_code");
    Object message = request.getAttribute("javax.servlet.error.message");

    model.addAttribute("path", path);
    model.addAttribute("status", status);
    model.addAttribute("message", message);

    return "error";
}