欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC国际化资源配置方式

程序员文章站 2022-04-16 11:05:24
...

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 即可切换为中文