springmvc 國際化

1。配置文件springmvc.xmljquery

    <!-- 國際化支持 -->
    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="i18n/test_i18n" />
    </bean>web

    <bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
        <property name="defaultLocale" value="en_US" />
    </bean>spring

    <bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>mvc

    <bean
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <property name="interceptors">
            <list>
                <ref bean="localeChangeInterceptor" />
            </list>
        </property>
    </bean>app

紅字標示的爲存放i18文件的文件夾,且在src目錄下jsp

2。配置controller,根據用戶本身的選擇,修改語言環境spa

  if(lang.equals("zh")){
                    Locale locale = new Locale("zh", "CN"); 
                    request.getSession().setAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME,locale); 
                }else if(lang.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());

             }code

 

3。配置完成就能夠用了,一般會有如下幾種狀況xml

    2.1 頁面信息的國際化,好比加載一個註冊表單,那麼  用戶名/username 應該根據語言環境呈現。get

    jsp 頁面引入s 標籤

     <%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>

       須要國際化的地方,引入對應的i18 屬性 

    <spring:message code="loginpage.username"/>

    2.2  第二種狀況是提示信息,好比用戶提交表單,郵箱格式不合法,能夠用過下面的方法獲取國際化信息

locale = (Locale) httpRequest.getSession().getAttribute(SessionLocaleResolver.LOCALE_SESSION_ATTRIBUTE_NAME);

或者:

Locale locale = RequestContextUtils.getLocaleResolver(request).resolveLocale(request);  

String message = applicationContext.getMessage(code,args, locale);

getMessage中有四個變量,依次分別爲message_*.properties文件中的key,key中{0}、{1}等對應的值,默認值和Locale。

再將拿到的信息返回頁面

 2.3 還有其餘的情形,好比jquery 的提示信息等等,官方好像有提供方案,待研究

相關文章
相關標籤/搜索