如何通过FreeMarker中的Properties文件加载标签

时间:2014-10-20 06:28:08

标签: spring-mvc freemarker labels

我正在使用Spring MVC + FreeMarker集成。由于我是FreeMarker的新手,我无法找到从属性文件中配置FreeMarker标签的方法。

请帮助我解决这个问题。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用'ResourceBundleMessageSource'消息来源。

<bean id="messageSource"   
           class="org.springframework.context.support.ResourceBundleMessageSource"
      <property name="basename" value="classpath:messages/messages" />
      <property name="defaultEncoding" value="UTF-8"/>
/>

定义区域设置解析器,

<bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
        <property name="defaultLocale" value="en" />
    </bean>

定义localeChangeInterceptor,它从用户会话中检测语言参数并调用locale resolve。并在处理程序映射中注册拦截器。

<bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
</bean>

class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" >
        <property name="interceptors">
           <list>
            <ref bean="localeChangeInterceptor" />
           </list>
        </property>
    </bean>

需要定义属性文件,如

  • messages_en.properties
  • messages_ar.properties
消息文件夹路径中的

如果语言属性文件经常更改,则可以使用

'ReloadableResourceBundleMessageSource'。这意味着您不必在每个语言文件更改中重新启动应用程序。

您需要导入spring宏,

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

消息可以在.ftl中访问,如下所示。

<@spring.message "customMessageKey"/>