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

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

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

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

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

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

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

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

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

然后再跳转到指定的页面

完事收工。

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

 

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值