freemarker 异常处理

SSH2处理方案:

freemarker文件如果出错,网站的前台页面会报出很明显的错误-焦黄的背景,血红的文字,很不利于用户体验的。如何修改这个问题呢?
首先需要在struts.xml配置文件里添加下面一行代码:

接着新建MyFreemarkerManager类,如下所示:

 

 
 

SpringMVC-Freemarker异常配置

 

1、spring mvc的异常配置

    spring mvc 提供了SimpleMappingExceptionResolver来处理异常,这里的只是由web 请求,经由controller引发的异常,无法处理freemarker的异常

 

2、freemarker自定义异常

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
  * freemarker页面上的异常控制
  * 在webmvc-config.xml里面的freemarkerSettings里头配置
  * @author scipio
  * @created 2014-02-01
  */
public  class  FreemarkerExceptionHandler  implements  TemplateExceptionHandler {
     private  static  final  Logger log = LoggerFactory
             .getLogger(FreemarkerExceptionHandler. class );
 
     public  void  handleTemplateException(TemplateException te, Environment env,
                                         Writer out)  throws  TemplateException {
 
             log.warn( "[Freemarker Error: "  + te.getMessage() +  "]" );
             throw  new  ViewException( "freemarker error" ,te);
     }
}

 

 

  这里重新包装异常抛出(这种方式要求比较严格,因为freemarker对个别的错误,比如某个变量没有定义,可以忽略,只是后台抛异常,然后整个页面还是会渲染出来)

 

3、配置HtmlFreeMarkerConfigurer

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  < bean  id = "freemarkerConfig"  class = "org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer" >
         < property  name = "templateLoaderPath"  value = "/WEB-INF/views/" />
         < property  name = "freemarkerSettings" >
             < props >
                 < prop  key = "template_update_delay" >0</ prop >
                 < prop  key = "default_encoding" >UTF-8</ prop >
                 < prop  key = "locale" >zh_CN</ prop >
                 < prop  key = "url_escaping_charset" >UTF-8</ prop >
                 < prop  key = "whitespace_stripping" >true</ prop >
                 < prop  key = "number_format" >#</ prop >
                 <!-- 配置自定义的freemarker异常处理-->
                 < prop  key = "template_exception_handler">com.persia.exception.FreemarkerExceptionHandler</ prop >
             </ props >
         </ property >
     </ bean >

 

 

4、针对该异常,配置web.xml

 

1
2
3
4
5
<!--配置freemarker异常-->
     < error-page >
         < exception-type >com.persia.exception.ViewException</ exception-type >
         < location >/WEB-INF/views/error/viewException.ftl</ location >
     </ error-page >

 

 

转载于:https://www.cnblogs.com/cz-xjw/p/4987232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值