如何屏蔽前台FreeMarker模板的错误信息

2019-02-26 16:32 阅读

通常不屏蔽模板的错误信息。前台FreeMarker模板的错误信息会准确的定位发生错误的模板文件位置、错误代码行数以及错误原因,非常有利于模板的问题排查,如果屏蔽模板错误信息会使得模板调试变得困难甚至无从下手。

如果实际使用中,需要屏蔽的话,可以修改/WEB-INF/classes/conf/context.xml中有关FreeMarker的配置:

    <bean id="freemarkerConfig" class="com.ujcms.common.freemarker.AdapterFreeMarkerConfigurer">
        <property name="freemarkerVariables" value="#{propertiesHelper.getBeanMap('freemarkerVariables.')}"/>
        <property name="templateLoaderPath" value="${templateStorePath}"/>
        <property name="freemarkerSettings">
            <props>
                <prop key="tag_syntax">square_bracket</prop>
                ...
                <!-- 模板异常处理方式。默认会将错误信息直接显示在页面里,方便调试;生产环境可以将异常重新抛出,由 spring 处理异常。 -->
                <prop key="template_exception_handler">rethrow</prop>
            </props>
        </property>
    </bean>

加上<prop key="template_exception_handler">rethrow</prop>配置后,模板异常将会作为系统异常处理。

系统异常的显示页面在/WEB-INF/views/error目录下。

咨询
交流群
电话