2010-07-01 3 views

Répondre

25

importation Spring Macro

<#import "/spring.ftl" as spring/> 

Puis

<@spring.message "yourMessageKeyGoesHere"/> 

Mais vous devez vous inscrire ResourceBundleMessageSource

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> 
    <property name="basename" value="messages"/> 
</bean> 

Gardez à l'esprit MessageSource doit être appeléMessageSource

+1

donc chaque modèle de freemarker doit importer? – Blankman

+0

@Blankman Je ne suis pas sûr mais je le pense –

+0

Si je me souviens, vous pouvez importer un modèle par défaut. @Blankman: vous pouvez vous référer aux documents Freemarker. –

12

@Blankman

Non, vous n'avez pas importer manuellement dans chaque modèle. Vous pouvez définir une propriété auto_import dans vos paramètres Freemarker comme indiqué ci-dessous.

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> 
    ... 

    <property name="freemarkerSettings"> 
     <props> 
      <prop key="auto_import">spring.ftl as spring</prop> 
     </props> 
    </property> 
</bean> 
+1

j'ai essayé la même chose pour spring.ftl via auto-import il donne 'java.io.FileNotFoundException: Template spring.ftl non trouvé' –

+1

Changez en /spring.ftl /spring.ftl comme le printemps

1

D'autres sont de bonnes réponses. Fournir java config comme exemple pour ceux qui l'utilisent.

@Bean(name = "freemarkerConfig") 
public FreeMarkerConfigurer freemarkerConfig() { 
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer(); 
    configurer.setTemplateLoaderPaths("/WEB-INF/views/", 'classpath:/templates'); 
    Map<String, Object> map = new HashMap<>(); 
    map.put("xml_escape", new XmlEscape()); 
    configurer.setFreemarkerVariables(map) 
    def settings = new Properties() 
    settings['auto_import'] = 'spring.ftl as spring,layout/application.ftl as l,/macros/meh.ftl as meh' 
    configurer.setFreemarkerSettings(settings) 
    log.info "returning freemarker config" 
    return configurer; 
} 
Questions connexes