2010-07-01 16 views

Respuesta

25

importación resorte macro

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

Entonces

<@spring.message "yourMessageKeyGoesHere"/> 

Pero es necesario registrarse ResourceBundleMessageSource

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

Tenga en cuenta MessageSource debe llamarseMessageSource

+1

por lo que cada plantilla de freemarker tiene que importar? – Blankman

+0

@Blankman No estoy seguro, pero creo que sí –

+0

Como recuerdo, puede importar una plantilla de manera predeterminada. @Blankman: puede consultar los documentos de Freemarker. –

12

@Blankman

No, usted no tiene que importar manualmente en cada plantilla. Puede configurar una propiedad auto_import en su configuración de freemarker como se muestra a continuación.

<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

probé lo mismo para spring.ftl a través de auto-importación da 'java.io.FileNotFoundException: Plantilla spring.ftl no encontrada' –

+1

Cambie a /spring.ftl /spring.ftl como primavera

1

Otros son buenas respuestas. Proporcionando configuración java como ejemplo para aquellos que usan eso.

@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; 
} 
Cuestiones relacionadas