2012-01-27 66 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