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