Spring MVC國際化


一、Spring MVC國際化簡介
       程序國際化是商業系統的一個基本要求,因為今天的軟件系統不再是簡單的單機程序,往往都是一個開放的系統,需要面對來自全世界各個地方的訪問者,因此,國際化成為商業系統必不可少的一部分。
       Spring MVC的國際化是建立在Java國際化的基礎之上的,其一樣也是通過提供不同國家/語言環境的消息資源,然后通過 Resource Bundle加載指定 Locale對應的資源文件,再取得該資源文件中指定key對應的消息。這整個過程與Java程序的國際化完全相同,只是 Spring MVC框架對Java程序國際化進行了進一步的封裝,從而簡化了應用程序的國際化。
 
二、Spring MVC國際化的知識:
     1、messageSource接口:告訴系統國際資源文件的存儲位置。         
               org.springframework.context.support.ResourceBundleMessageSource類
 
     2、LocaleResolver接口:確定語言區域
          (1)accept-langage:基於瀏覽器的語言區域選擇  ---  默認方式,不需要配置
          (2)SessionLocaleResolver:基於會話的語言區域選擇,需要配置(常用)
          (3)CookieLocaleResolver:基於Cookie的語言區域選擇,需要配置
    
     3、LocaleChangeInterceptor攔截器:國際化的攔截器,當語言區域發生改變時,該攔截器將進行攔截,根據傳遞的參數來改變應用的語言環境。需要在SpringMVC的配置文件中進行注冊
      4、message標簽:是Spring MVC的標簽,在視圖頁面中輸出國際化的消息
         <%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
 
三、Spring MVC國際化步驟:
   (1)給系統加載國際化資源文件。
   (2)輸出國際化。 Spring MVC輸出國際化消息有兩種方式:
         A、在視圖頁面上輸出國際化消息,需要使用 Spring MVC的標簽庫。
         B、在 Controller的處理方法中輸出國際化消息,需要使用 org.springframework.web.servlet.support Requestcontext的getMessage()方法來完成。
 
四、基於SessionLocaleResolver的國際化:
      1、創建資源文件
         messages_zh_CN.properties
         messages_en_US.properties
 
      2、配置國際化的類和攔截器
         <!-- 基於SessionLocaleResolver的語言區域選擇器 -->
       <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"/>
       <!-- 注冊MessageSource,明確資源文件的位置 -->
       <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
          <property name="basename" value="messages"></property>
       </bean>
 
       <!-- 配置攔截器 -->
       <mvc:interceptors>
       <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
          <property name="paramName" value="lang"></property>
       </bean>
      </mvc:interceptors>
 
      3、在頁面中使用message標簽輸出國際化信息
       <spring:message code="language"/>
          <a href="?lang=zh_CN">
            <spring:message code="language.cn"/>
          </a>  ------
          <a href="?lang=en_US">
            <spring:message code="language.en"/>
          </a>
          <br><br>
          <div align="center">
             <h2>
                <spring:message code="userlogin"/>
             </h2>
             <hr><br>
              <spring:message code="username"/>
             <input type="text">
             <br><br>
              <spring:message code="password"/>
             <input type="password">
             <br><br>
             <input type="submit" value="<spring:message code="submit"/>">
             &nbsp;&nbsp;&nbsp;&nbsp;
             <input type="reset" value="<spring:message code="reset"/>">
          </div>
       
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM