2016-03-31 4 views
0

Hallo ich Anforderung FTL für verschiedene Einheiten zu schaffen haben,Wie kann ich laden verschachtelten Ordner für Freemarker Vorlage Frühjahr org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean

Ich möchte FTL die aus verschachtelten Ordnern laden, wie alle A realted ftl's sollte ein Ordner sein, dann alle Macro's live im Macro Ordner.

<bean id="freeMarkerConfigurationFactory" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean"> 
    <property name="templateLoaderPath" value="classpath:freemarker/Account/"/> 
    <property name="preferFileSystemAccess" value="false"/> 
</bean> 

dies nicht Feder 4

<bean id="freeMarkerConfigurationFactory" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean"> 
    <property name="templateLoaderPath"> 
     <value> "classpath:freemarker/Account/" , "classpath:freemarker/Macro/"</value> 
    </property> 
    <property name="preferFileSystemAccess" value="false"/> 
</bean> 

Auch die Federklasse nach dem Debuggen

public void setTemplateLoaderPath(String templateLoaderPath) { 
    this.templateLoaderPaths = new String[] {templateLoaderPath}; 
} 

anstelle eines Arrays, verhält sich wie templateLoaderPath Einzelsaite ist working.Using.

Antwort

1

Sie müssen die templateLoaderPaths Eigenschaft (beachten Sie die s am Ende), nicht templateLoaderPath.

glaube ich, die Frühlings-Syntax dafür wird (habe es nicht getestet ...):

<property name="templateLoaderPaths" 
      values="classpath:freemarker/Account/,classpath:freemarker/Macro/" 
/> 

oder die längere Form:

<property name="templateLoaderPaths"> 
    <array> 
    <value>classpath:freemarker/Account/</value> 
    <value>classpath:freemarker/Macro/</value> 
    </array> 
</property> 
+0

Dank ddekany, es funktionierte, –

+0

(Markieren Sie es als Antwort.) – ddekany