如何当freemarker模板出现错误时屏蔽错误并跳转

注意:以下尝试都是使用spring2.5及以上版本
在日常的开发过程中,对错误信息的合理处理都是很重要的一个环节,特别对于门户系统,其重要性就不言而喻了

然而我们在实际的开发过程中,要想错误提示明确、又要想客户不至于太反感,看似矛盾的问题我们怎么处理呢?

大多数系统都是采用一检测到错误,统一跳转到统一的错误页面,然后统一去做处理,但是那种错误检测仅仅是处理大部分的错误,如java.sql.SQLException、java.lang.RuntimeException,但是对于使用freemarker模板语言的系统来说,其支持不是很好(我尝试把freemarker.template.TemplateException等异常加入到其检测机制中,发现没有作用,只好改用其实现方法)。通过查询freemarker、spring的api获知,freemarker提供了一个支持其错误处理机制的接口TemplateExceptionHandler,需要自己去扩展实现,构造自己的处理freemarker模板错误的机制

主要分为两个部分 1、构造自己的错误处理机制

2、在spring启动的时候将自定义的错误机制加入到freemarker配置中

具体做法如下:

1、新建一个类,让其实现TemplateExceptionHandler接口

public class LenovoFreemarkerExceptionHandler implements TemplateExceptionHandler{

      public void handleTemplateException(TemplateException arg0,
    Environment arg1, Writer out) throws TemplateException {
        //这里构建你的错误机制,可以进行跳转及错误日志的打印等等

  }

}

2、新建一个类,让其继承FreeMarkerConfigurer

  public class LenovoFreemarkerConfigration extends FreeMarkerConfigurer {
     @Override
    public void afterPropertiesSet() throws IOException, TemplateException {
    if (getConfiguration() == null) {
         setConfiguration(createConfiguration());
     }
    getConfiguration().setTemplateExceptionHandler(new LenovoFreemarkerExceptionHandler());
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值