码迷,mamicode.com
首页 > 其他好文 > 详细

freemarker 异常处理

时间:2015-11-23 00:58:05      阅读:339      评论:0      收藏:0      [点我收藏+]

标签:

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>

 

 

freemarker 异常处理

标签:

原文地址:http://www.cnblogs.com/cz-xjw/p/4987232.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!