2019-11-09 springboot 2.2.0 配置 ErrorPageRegistrar 错误

在学习springboot中配置错误页中出错,所以特地进行记录。
这个是实现了ErrorPageRegistrar 的全局类

@Configuration
public class ErrorPageConfig implements ErrorPageRegistrar{
    @Override
    public void registerErrorPages(ErrorPageRegistry registry) {
        ErrorPage error400Page=new ErrorPage(HttpStatus.BAD_REQUEST,"/error/400");
        ErrorPage errot404Page=new ErrorPage(HttpStatus.NOT_FOUND,"/error/404");
        ErrorPage error500Page=new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR,"/error/500");
        registry.addErrorPages(error400Page,errot404Page,error500Page);
    }
}

错误页面跳转

@Controller
@RequestMapping("/error")
public class ErrorController {
    /**
     * 400页面
     */
    @GetMapping("/400")
    public String error_400() {
        return "../static/error-400";
    }
    /**
     * 404页面
     */
    @GetMapping("/404")
    public String error_404() {
        System.out.println("4040404");
        return "../static/error-404";
    }

    /**
     * 500页面
     */
    @GetMapping("/500")
    public String error_500() {
        return "../static/error-500";
    }
}

静态资源可以访问


2019-11-09 springboot 2.2.0 配置 ErrorPageRegistrar 错误_第1张图片
17913231-535c6b7608f4f4e1.png

这是我的项目结构
2019-11-09 springboot 2.2.0 配置 ErrorPageRegistrar 错误_第2张图片
17913231-bd4ad0eb7cb5628f.png

最后是因为在static 下controller访问需要

return "../static/error-404";
在springboot项目中默认访问路径是static文件夹和template文件夹,static文件夹下的资源可以通过浏览器直接访问(如:localhost:8080/index.html,如有文件夹输入正确路径即可 如:localhost:8080/image/abc.jpg),而template文件夹下的页面需要在controller中跳转进行访问。在controller中如果直接return页面的名称那么默认从template文件夹中去寻找对应的页面,例如:

@GetMapping("/login")

    public String login() {

        return "/login";

    }

这样的情况会默认去template文件夹下寻找login.html去跳转,那么如果html文件在static文件夹下就需要这么写来进行跳转:

@GetMapping("/login")

    public String toIndex() {

        return "../static/login.html";

    }



而在页面中引用样式或图片等静态资源时,默认去static中寻找,所以我们的路径只需写在static文件夹下的正确路径即可。如以下几种方式:

    cosplay

    

    

    

    

    

你可能感兴趣的:(2019-11-09 springboot 2.2.0 配置 ErrorPageRegistrar 错误)