как использовать сообщения с freemarker в весной mvc? - PullRequest
18 голосов
/ 01 июля 2010

В .jsp я бы использовал:

<fmt:message key="welcome.title"/>

для отображения сообщения из моего файла messages.properties.

Как бы я сделал это с freemarker?

Ответы [ 3 ]

29 голосов
/ 01 июля 2010

Импорт макроса Spring

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

Затем

<@spring.message "yourMessageKeyGoesHere"/>

Но вам необходимо зарегистрировать ResourceBundleMessageSource

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

Имейте в виду MessageSource должен называться Источник сообщений

13 голосов
/ 30 мая 2012

@ Бланкмэн

Нет, вам не нужно импортировать это вручную в каждом шаблоне. Вы можете установить свойство auto_import в настройках вашего бесплатного маркера, как показано ниже.

<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 голос
/ 10 февраля 2016

Другие - хорошие ответы. Предоставление конфигурации Java в качестве примера для тех, кто использует это.

 @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;
}
...