Spring MVC I18N配置

Spring MVC I18N配置
1. 首先需要配置资源文件,这个做j2ee开发应该都比较清楚。
    <!-- i18n configure -->
    <bean id="messageSource"  class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="com.founder.cst.i18n.messageResource"/> 
    </bean>

2. 配置Resolver,这里有三种,基于Request,基于Session,以及基于Cookie,但一般我们会用基于Session的。
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
    基于Request的class为:org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver
    基于Session的class为:org.springframework.web.servlet.i18n.CookieLocaleResolver

3. 配置拦截器
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />

4. 设置拦截器
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"> 
        <property name="interceptors" ref="localeChangeInterceptor"/>
    </bean>
    如果使用BeanNameUrlHandlerMapping则为
    <bean id="defaultUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
        <property name="interceptors" ref="localeChangeInterceptor" />
    </bean>

最后注意请求参数为locale,例如locale=zh_CN
在controller里面获取资源文件的时候, 注意使用RequestContextUtils.getLocale(request)替代request.getLocale()获取locale信息.

你可能感兴趣的:(Spring MVC I18N配置)