Dans un .jsp j'utiliserais:comment utiliser les messages avec freemarker au printemps mvc?
<fmt:message key="welcome.title"/>
pour afficher un message de mon fichier messages.properties.
Comment est-ce que je ferais ceci avec freemarker?
Dans un .jsp j'utiliserais:comment utiliser les messages avec freemarker au printemps mvc?
<fmt:message key="welcome.title"/>
pour afficher un message de mon fichier messages.properties.
Comment est-ce que je ferais ceci avec freemarker?
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
@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>
j'ai essayé la même chose pour spring.ftl via auto-import il donne 'java.io.FileNotFoundException: Template spring.ftl non trouvé' –
Changez en /spring.ftl
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;
}
donc chaque modèle de freemarker doit importer? – Blankman
@Blankman Je ne suis pas sûr mais je le pense –
Si je me souviens, vous pouvez importer un modèle par défaut. @Blankman: vous pouvez vous référer aux documents Freemarker. –