SpringMVC + FreeMarker 国际化使用方法

SpringMVC + FreeMarker 国际化使用方法

1、配置Spring

	<!-- 国际化 -->
	<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
		<property name="basenames">
			<list>
				<value>i18n</value>
			</list>
		</property>
	</bean>


2、建立资源文件

SpringMVC + FreeMarker 国际化使用方法_第1张图片

图中使用了2组资源文件 i18n 与 messages,是为了测试命名规则,因为网上查资料看到有人讲Spring国际化需要命名为messages,结果这种说法完全错误。

文件前缀命名没有限制,只需要与第一步中的value值匹配即可。后缀则必须按规则来写messages_en_US.properties或i18n_en_US.properties。

 

3、项目中加入springmvc整合freemarker的国际化的支持文件spring.ftl,此文件在spring-webmvc的jar包中,以spring3.2为例:

路径为:spring-webmvc-3.2.0.M1.jar\org\springframework\web\servlet\view\freemarker。将文件复制到项目中,方便引用

 

4、在freemarker文件中引入spring.ftl,即可获取资源文件中的信息

SpringMVC + FreeMarker 国际化使用方法_第2张图片

图中ProjectName即对应资源文件中的key值

 

5、加入配置可通过session控制国际化语言

	<!-- 国际化操作 拦截器  -->         
	<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
	<!-- 基于Session的国际化配置 -->  
	<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean>


代码中即可通过以下方法进行语言设置

request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME, new Locale("zh", "CN"));

 

----------------------------END--------------------------

 

 

 

 

你可能感兴趣的:(spring,freemarker,国际化)