SpringMVC国际化资源配置方式

i.首先需要在spring-mvc-servlet.xml 中配置拦截器;

<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>

 ii.如果是需要在界面上进行切换(session方式);则需要如下配置:

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"> <!-- 必须将区域解析器的Bean名称设置为localeResolver,这样DispatcherServlet才能自动侦测到它。请注意,每DispatcherServlet只能注册一个区域解析器。-->
        <property name="defaultLocale" value="zh"/>
    </bean>

 iii.如果要浏览器自适应语言方式(cookie方式);则需要如下配置:

<bean id="cookieLocaleResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
		<property name="cookieName" value="clientlanguage"/>
 		<property name="cookieMaxAge" value="94608000"/>
 		<property name="defaultLocale" value="en" />
 	</bean>

 iv.最后在applicationContext.xml 中配置关于资源文件

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
	    <!-- 国际化信息所在的文件名 -->
	    <property name="basenames">
	    	<list>
	        <value>languages/messages</value>
	        </list>
	    </property>
	    <!-- 如果在国际化资源文件中找不到对应代码的信息,就用这个代码作为名称  -->               
    	<property name="useCodeAsDefaultMessage" value="true" />
	</bean>

 v.在拦截器中配置local (选择配置),代码如下:

<mvc:interceptors>
        <!--国际化资源切换(根据请求参数中的locale参数自动切换)-->
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <ref bean="localeChangeInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>

    eg: http://localhost:8080/xxx/xxx?locale=zh_CN 即可切换为中文

猜你喜欢

转载自zdc243.iteye.com/blog/2276235