En un .jsp me gustaría utilizar:cómo usar mensajes con freemarker en spring mvc?
<fmt:message key="welcome.title"/>
para mostrar un mensaje de mi archivo messages.properties.
¿Cómo haré esto con freemarker?
En un .jsp me gustaría utilizar:cómo usar mensajes con freemarker en spring mvc?
<fmt:message key="welcome.title"/>
para mostrar un mensaje de mi archivo messages.properties.
¿Cómo haré esto con freemarker?
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
@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>
probé lo mismo para spring.ftl a través de auto-importación da 'java.io.FileNotFoundException: Plantilla spring.ftl no encontrada' –
Cambie a /spring.ftl
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;
}
por lo que cada plantilla de freemarker tiene que importar? – Blankman
@Blankman No estoy seguro, pero creo que sí –
Como recuerdo, puede importar una plantilla de manera predeterminada. @Blankman: puede consultar los documentos de Freemarker. –