Struts2.3.15 freemarker集成

Struts2.3.15 freemarker集成,struts2,freemarker,Struts2,Freemarker,当我使用Struts 2.1.8时,我使用了freemarker,如下所示: 在applicationContext.xml中配置bean: <bean id="freemarkerManager" class="org.apache.struts2.views.freemarker.FreemarkerManager"/> 它在Struts 2.1.8中运行良好 但是现在我使用Struts 2.3.15,它不起作用;它无法加载freemarker.propertie

当我使用Struts 2.1.8时,我使用了freemarker,如下所示:

在applicationContext.xml中配置bean:

<bean id="freemarkerManager" 
      class="org.apache.struts2.views.freemarker.FreemarkerManager"/>
它在Struts 2.1.8中运行良好

但是现在我使用Struts 2.3.15,它不起作用;它无法加载
freemarker.properties
。我读了源代码,问题是
fileManager
loadSettings()
方法中为空:

try {
    in = fileManager.loadFile(
               ClassLoaderUtil.getResource("freemarker.properties", getClass()));
在Struts 2.1.8
loadSettings()
中,方法如下:

InputStream in = null;
try {
    in = FileManager.loadFile("freemarker.properties", FreemarkerManager.class);
FreemarkerManager freemarkerManager = Dispatcher.getInstance().getContainer().getInstance(FreemarkerManager.class);
没问题


谁能告诉我如何将
freemarkerManager
与Struts 2.3.15结合使用吗?

您必须像这样初始化
freemarkerManager

InputStream in = null;
try {
    in = FileManager.loadFile("freemarker.properties", FreemarkerManager.class);
FreemarkerManager freemarkerManager = Dispatcher.getInstance().getContainer().getInstance(FreemarkerManager.class);

你真的需要从
freemarkerManager
中获取FreeMarker配置吗?或者你可以为它创建新的配置吗?Aleksandr M,你是对的,它不必从freemarkerManager获取配置,为什么我要使用它,首先,因为Struts2.1.8运行良好,我想找到Struts2.3.15无法运行的原因;其次,我有一个freemarker.properties,我不想自己设置属性,所以我想让FreemarkerManager这样做。我扩展FreemarkerManager并重写loadSettings方法,如下所示:公共类CustomFreemarkerManager扩展FreemarkerManager{private static final Logger LOG=LoggerFactory.getLogger(CustomFreemarkerManager.class);@重写受保护的无效加载设置(ServletContext ServletContext){InputStream in=null;尝试{//获取模板引擎配置文件 Resource Resource=new ClassPathResource(“freemarker.properties”);in=Resource.getInputStream();