通常不屏蔽模板的错误信息。前台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
目录下。