mirror of
https://github.com/apache/struts.git
synced 2026-08-11 01:27:14 +00:00
WW-4838 Allows define incompatible improvements as an init-param
This commit is contained in:
@@ -314,7 +314,9 @@ public class FreemarkerManager {
|
||||
* @throws TemplateException in case of errors during creating the configuration
|
||||
*/
|
||||
protected Configuration createConfiguration(ServletContext servletContext) throws TemplateException {
|
||||
Configuration configuration = new Configuration(Configuration.VERSION_2_3_0);
|
||||
Version incompatibleImprovements = getFreemarkerVersion(servletContext);
|
||||
|
||||
Configuration configuration = new Configuration(incompatibleImprovements);
|
||||
|
||||
configuration.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
|
||||
|
||||
@@ -340,6 +342,17 @@ public class FreemarkerManager {
|
||||
return configuration;
|
||||
}
|
||||
|
||||
protected Version getFreemarkerVersion(ServletContext servletContext) {
|
||||
Version incompatibleImprovements = Configuration.VERSION_2_3_0;
|
||||
|
||||
String incompatibleImprovementsParam = servletContext.getInitParameter("freemarker." + Configuration.INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE);
|
||||
if (incompatibleImprovementsParam != null) {
|
||||
incompatibleImprovements = new Version(incompatibleImprovementsParam);
|
||||
}
|
||||
|
||||
return incompatibleImprovements;
|
||||
}
|
||||
|
||||
|
||||
protected ScopesHashModel buildScopesHashModel(ServletContext servletContext, HttpServletRequest request, HttpServletResponse response, ObjectWrapper wrapper, ValueStack stack) {
|
||||
ScopesHashModel model = new ScopesHashModel(wrapper, servletContext, request, stack);
|
||||
@@ -396,7 +409,8 @@ public class FreemarkerManager {
|
||||
}
|
||||
|
||||
protected ObjectWrapper createObjectWrapper(ServletContext servletContext) {
|
||||
StrutsBeanWrapper wrapper = new StrutsBeanWrapper(altMapWrapper);
|
||||
Version incompatibleImprovements = getFreemarkerVersion(servletContext);
|
||||
StrutsBeanWrapper wrapper = new StrutsBeanWrapper(altMapWrapper, incompatibleImprovements);
|
||||
wrapper.setUseCache(cacheBeanWrapper);
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import freemarker.template.SimpleSequence;
|
||||
import freemarker.template.TemplateCollectionModel;
|
||||
import freemarker.template.TemplateHashModelEx;
|
||||
import freemarker.template.TemplateModel;
|
||||
import freemarker.template.Version;
|
||||
|
||||
/**
|
||||
* <!-- START SNIPPET: javadoc -->
|
||||
@@ -53,7 +54,8 @@ import freemarker.template.TemplateModel;
|
||||
public class StrutsBeanWrapper extends BeansWrapper {
|
||||
private boolean altMapWrapper;
|
||||
|
||||
public StrutsBeanWrapper(boolean altMapWrapper) {
|
||||
public StrutsBeanWrapper(boolean altMapWrapper, Version incompatibleImprovements) {
|
||||
super(incompatibleImprovements);
|
||||
this.altMapWrapper = altMapWrapper;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user