2012-01-27 88 views
1

我有以下工作的配置。现在我们的客户想要自定义这些邮件模板。因为我们尝试将战争文件交付给多个客户,并且不想覆盖他们在这些模板中所做的更改。所以我想我们可能需要将mailTemplate文件夹放在Tomcat Root或其他地方,而不是在webapp中。 我试图将templateLoaderPaths的值更改为如下所示: value="../mailTemplate", 但它确实有效。 请帮忙。谢谢。春季Freemarker配置,模板路径

<bean id="freeMarkerConfigurer" 
     class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> 
     <property name="templateLoaderPaths" 
      value="/WEB-INF/mailTemplate/" /> 
     <property name="freemarkerSettings"> 
      <props> 
       <prop key="template_update_delay">1800</prop> 
       <prop key="default_encoding">UTF-8</prop> 
          </props> 
     </property> 

    </bean> 

回答

2

指定完整的文件路径模板目录 “文件:” URL,像

<property name="templateLoaderPaths" value="file:///path/to/mailTemplate/" /> 
+0

如果我使用'<值=“文件:/// C:/ Program Files文件/ Apache软件基金会/ Tomcat 6.0/mailTemplate /“/>',它的工作原理。但是我不能强迫我的客户端安装tomcat,那么如何使用相对路径?我的webapp在这里是'。谢谢 – Alex 2012-01-27 21:59:28

+0

嗯是的,有趣的问题。从来没有尝试过相对路径,而不是如何解释,即相对于其他目录? Tomcat进程的工作目录。 – Jan 2012-01-27 22:38:53

+1

也许应该起作用的是在类似value =“$ {templateRootDir}”的路径中使用属性占位符,并在Tomcat中使用该名称设置Java系统属性。然后,您的客户可以将这些模板放到任何他们想要的地方,只需通过在Tomcat启动脚本中设置此属性来告诉您的应用程序在何处。 – Jan 2012-01-27 22:41:42