springMVC国际化总结

 1.配置springMVC

	<!-- 国际化 -->
	<bean id="messageSource"
		class="org.springframework.context.support.ResourceBundleMessageSource">
		<property name="cacheSeconds" value="5" />
		<!-- 资源刷新间隔时间 -->
		<property name="basenames">
			<list>
                <!-- 文件示例 -->
				<!-- /src/config/i18n/messages_en_US.properties -->
				<!-- /src/config/i18n/messages_zh_CN.properties -->
				<value>config.i18n.messages</value>
			</list>
		</property>
	</bean>

	<!-- 基于Session的国际化配置 -->
	<bean id="localeResolver"
		class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean>

	<!-- 国际化操作 拦截器 必需配置,可以和其它国际化方式通用 -->
	<bean id="localeChangeInterceptor"
		class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />

2.controller 拦截

		// 国际化配置语言
		if (langType.equals("zh")) {
			Locale locale = new Locale("zh", "CN");
			request.getSession()
					.setAttribute(
							SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,
							locale);
		} else if (langType.equals("en")) {
			Locale locale = new Locale("en", "US");
			request.getSession()
					.setAttribute(
							SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,
							locale);
		} else
			request.getSession().setAttribute(
					SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,
					LocaleContextHolder.getLocale());

3.freemarker页面的引用(jsp请自寻)

到org.springframework.web.servlet.view.freemarker目录下复制spring.ftl到相关目录(/WebRoot/WEB-INF/template/spring.ftl)

在springMVC整合freemarker视图的配置中添加配置:自动引入spring的宏命令库。

<prop key="auto_import">/template/spring.ftl as spring</prop>

完整的示例:

	<!-- freemarker视图 -->
	<!-- 一定要放在viewResolver的前面,这样就先去找freemarker的 -->
	<bean id="freemarkerConfig"
		class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
		<property name="templateLoaderPath" value="/WEB-INF/" />
		<property name="freemarkerSettings">
			<props>
				<!-- 编码 -->
				<prop key="defaultEncoding">UTF-8</prop>
				<!-- 国际化 -->
				<prop key="auto_import">/template/spring.ftl as spring</prop>
				<!-- 缓存刷新 -->
				<prop key="template_update_delay">0</prop>
				<!-- 数字逗号分隔 -->
				<prop key="number_format">0.##</prop>
				<!-- 日期格式化 -->
				<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
				<!-- 变量null更换为空字符 -->
				<prop key="classic_compatible">true</prop>
			</props>
		</property>
	</bean>

提示:也可以自己手工引用 <#import "/common/spring.ftl" as spring/>

4.页面显示

<@spring.message "home"/> 其中home在国际化配置文件中配置。

5.总结

做国际化有些麻烦的,除了页面上,还有我个人些一下js也要进行国际化,查了些资料,打算使用jquery-i18next,暂时先搁置着,有时间了在进行下一步的记录。

转载于:https://my.oschina.net/u/817904/blog/701759

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值