如何在spring mvc中使用freemarker的消息?

Bla*_*man 19 java spring freemarker spring-mvc

在.jsp中我会使用:

<fmt:message key="welcome.title"/>
Run Code Online (Sandbox Code Playgroud)

从我的messages.properties文件中显示一条消息.

我如何用freemarker做到这一点?

Art*_*ald 29

导入Spring宏

<#import "/spring.ftl" as spring/>
Run Code Online (Sandbox Code Playgroud)

然后

<@spring.message "yourMessageKeyGoesHere"/>
Run Code Online (Sandbox Code Playgroud)

但是您需要注册ResourceBundleMessageSource

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="messages"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

请记住MessageSource 必须被称为 messageSource

  • 所以每个freemarker模板都必须导入? (2认同)

mat*_*eus 13

@Blankman

不,您不必在每个模板中手动导入.您可以在freemarker设置中设置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>
Run Code Online (Sandbox Code Playgroud)