首页新闻找找看学习计划

springboot多模块项目减少重复代码来统一错误页面?

0
悬赏园豆:20 [待解决问题]

 目前有登录模块,订单模块,还有portal主界面模块,每个模块下都有自己的controller以及web页面.页面模版用的是freemarker.

   我加了一个common模块,里面有top.ftl,head.ftl,footer.ftl,这些是让其他页面include的.404.ftl,500.ftl也在里面.

   我希望不同模块的web页面出现404,500之类的错误,都可以跳转到common模块的404.ftl,500.ftl,

 

  但是目前只能是每个模块都加上这段代码跳转/404,以及每个模块都加上controller,处理/404

@Configuration
public class ErrorConfiguration {

    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer()
    {
        return new EmbeddedServletContainerCustomizer() {
            @Override
            public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) {
                Set<ErrorPage> errorPages=new HashSet<>();
                errorPages.add(new ErrorPage(HttpStatus.BAD_REQUEST,"/404"));
                errorPages.add(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR,"/500"));
                errorPages.add(new ErrorPage(HttpStatus.NOT_FOUND,"/404"));
                configurableEmbeddedServletContainer.setErrorPages(errorPages);
            }
        };
    }
}

 

复制代码
   @RequestMapping({ "/404" })
    public void error404(HttpServletRequest request,
                                 HttpServletResponse response) {
        request.getRequestDispatcher("http://localhost:8085/404");

    }
复制代码

new
ErrorPage只能加/开头的url,不能加http://locahost这种.

这样每个模块都有相同的几乎两个文件,有没有更好的能减少重复重复代码的方法?

   如果代码结构有问题的话也烦请指点一下.

InMicro的主页 InMicro | 初学一级 | 园豆:191
提问于:2018-02-14 18:59
< >
分享
所有回答(2)
0

这是转发啊?你需要带参数?试试重定向?

bingco | 园豆:213 (菜鸟二级) | 2018-02-17 18:10

 谢谢,这么多天终于有人回复我了。

转发没问题的,不是同一个端口也可以。

我仔细想了一下,新开个模块,把相同的配置controller文件放到一起,部署的时候打成jar包应该可以。

支持(0) 反对(0) InMicro | 园豆:191 (初学一级) | 2018-02-18 00:22
0

你用的是maven的话,可以新建个war项目,到时打包依赖。

123爱莫能 | 园豆:206 (菜鸟二级) | 2018-02-24 16:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册