freemarker模版异常跳转错误页实现方法

系统用的freemarker模版,接到领导指示,需要增加友好页面,在模版出错时定向跳转,避免直接在前台显示乱码

本来以为很简单的东西,搞了一整天,特此记录下,纪念我失去的时间。

网上查了很多资料,目前没有具体的解决方法,我这里写的详细点,给后来者一点指示吧。

原理:freemarker提供了异常捕捉的功能,这个是自带的,实现一下就行了,如下图

freemarker模版异常跳转错误页实现方法_第1张图片

触发的入口就是在项目加载freemarker配置的时候指定你自己定义的方法,如下图

freemarker模版异常跳转错误页实现方法_第2张图片

template_exception_handler,这个参数就是指定发生异常时通知哪个类,我这里是自己定义了个异常,只不过里面没有写东西,如果项目需要的话可以在里面加东西,比如消息推送,短信推送,邮件推送什么的,看自己了

当然,你也可以设置template_exception_handler为rethrow或者ignore,rethrow页面会显示异常信息,ignore会忽略异常部分,继续显示其余的内容,比如有个标签里面的值是null,你没有提前判断,那就会跳过这个标签,继续显示后面的部分,不管填写什么后台都是报错的,不怕找不到错误日志

然后重点来了,跳转到我指定的异常页面,我这里是抛出自定义异常,然后在web.xml配置捕获异常跳转到对应的连接,如图

freemarker模版异常跳转错误页实现方法_第3张图片

然后再跳转到指定的页面

freemarker模版异常跳转错误页实现方法_第4张图片

freemarker模版异常跳转错误页实现方法_第5张图片

完事收工。

ps:有个小坑,跳转错误提示页的时候不知道什么原因,直接跳转页面不好使,页面会出现在模版异常的地方,想了半天没弄好,只能做了2次跳转,算是取巧了,但是问题还没有解决,谁知道怎么解决可以告诉我,非常感谢。上个图

freemarker模版异常跳转错误页实现方法_第6张图片

 

freemarker模版异常跳转错误页实现方法_第7张图片

如果转发请带上博客地址,谢谢。

你可能感兴趣的:(freemarker)