2012-01-27 19 views
1

私は以下の設定が有効です。今、クライアントはこれらのメールテンプレートをカスタマイズしたいと考えています。いくつかの顧客にwarファイルを配信しようとするので、これらのテンプレートで行われた変更を無効にしたくないからです。ですから、私たちは、webappの内部にないTomcat Rootの下にmailTemplateフォルダを置く必要があるかもしれないと考えています。 templateLoaderPathsの値を次のように変更しようとしました: value="../mailTemplate"、 しかし、それは機能しました。 助けてください。ありがとう。Spring 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

"ファイル:" としてテンプレートディレクトリへの完全なファイルパスを指定します:/// C:私は `<値="ファイルを使用する場合

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

のように、URL /プログラムファイルを/ Apache Software Foundation/Tomcat 6.0/mailTemplate/"/>'、それは動作します。しかし、私はクライアントにTomcatをインストールする場所を強制することはできないので、相対パスの使い方は?私のwebappはここに ''です。ありがとう – Alex

+0

はい、興味深い質問。相対パスを試したことはありません。どのように解釈されるのではなく、つまり他のディレクトリとの相対的な相対パスで試したことはありませんか? Tomcatプロセスの作業ディレクトリ。 – Jan

+1

おそらくあまりにもうまくいくのは、value = "$ {templateRootDir}"のようなパスにプロパティプレースホルダを使用し、その名前のJavaシステムプロパティをTomcatに設定することです。顧客は、それらのテンプレートをどこにでも置くことができ、Tomcatスタートアップスクリプトでこのプロパティを設定することで、どこにアプリケーションがあるのか​​を伝えることができます。 – Jan

関連する問題