Author: mcucchiara Date: Thu Aug 18 18:11:06 2011 New Revision: 1159335 URL: http://svn.apache.org/viewvc?rev=1159335&view=rev Log: WW-3522 - Template Overriding not work
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java?rev=1159335&r1=1159334&r2=1159335&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java Thu Aug 18 18:11:06 2011 @@ -21,35 +21,13 @@ package org.apache.struts2.views.freemarker; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.*; -import java.text.SimpleDateFormat; - -import javax.servlet.GenericServlet; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; - -import org.apache.struts2.StrutsConstants; -import org.apache.struts2.views.JspSupportServlet; -import org.apache.struts2.views.TagLibrary; -import org.apache.struts2.views.util.ContextUtil; - import com.opensymphony.xwork2.inject.Container; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.util.FileManager; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.logging.Logger; import com.opensymphony.xwork2.util.logging.LoggerFactory; - -import freemarker.cache.ClassTemplateLoader; -import freemarker.cache.FileTemplateLoader; -import freemarker.cache.MultiTemplateLoader; -import freemarker.cache.TemplateLoader; -import freemarker.cache.WebappTemplateLoader; +import freemarker.cache.*; import freemarker.ext.jsp.TaglibFactory; import freemarker.ext.servlet.HttpRequestHashModel; import freemarker.ext.servlet.HttpRequestParametersHashModel; @@ -57,6 +35,21 @@ import freemarker.ext.servlet.HttpSessio import freemarker.ext.servlet.ServletContextHashModel; import freemarker.template.*; import freemarker.template.utility.StringUtil; +import org.apache.struts2.StrutsConstants; +import org.apache.struts2.views.JspSupportServlet; +import org.apache.struts2.views.TagLibrary; +import org.apache.struts2.views.util.ContextUtil; + +import javax.servlet.GenericServlet; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.text.SimpleDateFormat; +import java.util.*; /** @@ -270,8 +263,7 @@ public class FreemarkerManager { if (templatePath == null) { templatePath = servletContext.getInitParameter("templatePath"); } - if (templatePath == null) - templatePath = "class://"; + config.setTemplateLoader(createTemplateLoader(servletContext, templatePath)); loadSettings(servletContext); @@ -385,11 +377,13 @@ public class FreemarkerManager { TemplateLoader templatePathLoader = null; try { - if (templatePath.startsWith("class://")) { - // substring(7) is intentional as we "reuse" the last slash - templatePathLoader = new ClassTemplateLoader(getClass(), templatePath.substring(7)); - } else if (templatePath.startsWith("file://")) { - templatePathLoader = new FileTemplateLoader(new File(templatePath)); + if(templatePath!=null){ + if (templatePath.startsWith("class://")) { + // substring(7) is intentional as we "reuse" the last slash + templatePathLoader = new ClassTemplateLoader(getClass(), templatePath.substring(7)); + } else if (templatePath.startsWith("file://")) { + templatePathLoader = new FileTemplateLoader(new File(templatePath)); + } } } catch (IOException e) { LOG.error("Invalid template path specified: " + e.getMessage(), e); @@ -425,9 +419,8 @@ public class FreemarkerManager { Properties p = new Properties(); p.load(in); - Iterator i = p.keySet().iterator(); - while (i.hasNext()) { - String name = (String) i.next(); + for (Object o : p.keySet()) { + String name = (String) o; String value = (String) p.get(name); if (name == null) { @@ -451,7 +444,7 @@ public class FreemarkerManager { in.close(); } catch(IOException io) { if (LOG.isWarnEnabled()) { - LOG.warn("Unable to close input stream", io); + LOG.warn("Unable to close input stream", io); } } }