我正在使用Spring MVC + FreeMarker集成。由于我是FreeMarker的新手,我无法找到从属性文件中配置FreeMarker标签的方法。
请帮助我解决这个问题。
感谢。
答案 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>
需要定义属性文件,如
。
如果语言属性文件经常更改,则可以使用'ReloadableResourceBundleMessageSource'。这意味着您不必在每个语言文件更改中重新启动应用程序。
您需要导入spring宏,
<#import "/spring.ftl" as spring/>
和
消息可以在.ftl中访问,如下所示。
<@spring.message "customMessageKey"/>