如果要在Struts2中设置
TemplateExceptionHandler为
TemplateExceptionHandler.IGNORE_HANDLER,则需要扩展
org.apache.struts2.views.freemarker.FreemarkerManager类,重写
init和
createConfiguration方法,并在
struts.properties文件中配置自定义管理器。
struts.freemarker.manager.classname = your.package.YourFreeMarkerManager
更新
您的自定义FreemarkerManager应该如下所示:
public class MyFreemarkerManager extends org.apache.struts2.views.freemarker.FreemarkerManager {private static final Logger LOG = LoggerFactory .getLogger(MyFreemarkerManager.class);@Overridepublic void init(ServletContext servletContext) throws TemplateException { config = createConfiguration(servletContext); // Set defaults: config.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER); contentType = DEFAULT_CONTENT_TYPE; // Process object_wrapper init-param out of order: wrapper = createObjectWrapper(servletContext); if(LOG.isDebugEnabled()) { LOG.debug("Using object wrapper of class " + wrapper.getClass().getName()); } config.setObjectWrapper(wrapper); // Process TemplatePath init-param out of order: templatePath = servletContext.getInitParameter(INITPARAM_TEMPLATE_PATH); if(templatePath == null) { templatePath = servletContext.getInitParameter("templatePath"); } config .setTemplateLoader(createTemplateLoader(servletContext, templatePath)); loadSettings(servletContext);}@Overrideprotected Configuration createConfiguration(ServletContext servletContext) throws TemplateException { Configuration configuration = new Configuration(); configuration .setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER); if(mruMaxStrongSize > 0) { configuration.setSetting(Configuration.CACHE_STORAGE_KEY, "strong:" + mruMaxStrongSize); } if(templateUpdateDelay != null) { configuration.setSetting(Configuration.TEMPLATE_UPDATE_DELAY_KEY, templateUpdateDelay); } if(encoding != null) { configuration.setDefaultEncoding(encoding); } configuration.setWhitespaceStripping(true); return configuration;}}将该常量放入您的struts.xml文件中:
<constant name="struts.freemarker.manager.classname" value="your_package.MyFreemarkerManager" />



