欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring MVC Locale 本地化示例詳解

 更新時(shí)間:2023年09月14日 09:10:26   作者:福  
這篇文章主要為大家介紹了Spring MVC Locale本地化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

通過RequestContext.getLocale()獲取到對應(yīng)的Locale

Spring各模塊都支持國際化,SpringMVC也同樣支持。DispatcherServlet通過Locale Resovler自動根據(jù)客戶端的Locale支持國際化。

request請求上來后,DispatcherServlet查找并設(shè)置Locale Resovler,我們可以通過RequestContext.getLocale()獲取到對應(yīng)的Locale。

此外,可以利用攔截器在特定情況下修改locale,比如,根據(jù)請求參數(shù)修改locale。這項(xiàng)功能對于通過頁面選項(xiàng)指定locale的應(yīng)用非常有用(比如在頁面上選擇中文/英文的方式指定應(yīng)用的語言)。

Locale Resolver和攔截器定義在org.springframework.web.servlet.i18n包,可以通過配置文件指定,Spring支持如下locale resolver:

  • Time Zone
  • Header Resolver
  • Cookie Resovlver
  • Session Resolver
  • Locale Interceptor

Time Zone

除獲取用戶locale之外,有時(shí)候也需要獲取到用戶的時(shí)區(qū),LocaleContextResolver接口通過擴(kuò)展LocaleResovler可提供對時(shí)區(qū)的支持。

可通過RequestContext.getTimeZone() 獲取用戶時(shí)區(qū)。

Header Resolver

Header Resolver通過解析請求頭的accept-language,從而獲取到客戶端瀏覽器發(fā)送上來的相關(guān)頭信息。

SpringMVC提供的Header Resolver:AcceptHeaderLocaleResolver。

瀏覽器默默認(rèn)會發(fā)送相關(guān)的請求頭信息:

SpringMVC通過DispatcherServlet.properties指定的默認(rèn)LocaleResolver正是Header Resolver:

org.springframework.web.servlet.LocaleResolver=org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver

Cookie Resolver

檢查客戶端發(fā)送上來的請求的cookie中是否包含Locale或TimeZone信息,如包含則應(yīng)用該信息創(chuàng)建Locale。

SpringMVC提供的Cookie Resolver:org.springframework.web.servlet.i18n.CookieLocaleResolver。

通過如下方式配置:

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
    <property name="cookieName" value="clientlanguage"/>
    <!-- in seconds. If set to -1, the cookie is not persisted (deleted when browser shuts down) -->
    <property name="cookieMaxAge" value="100000"/>
</bean>

Session Resolver

SessionLocaleResolver通過session獲取客戶端的Locale和TimeZone信息,信息存儲在HttpSession中,隨著session的失效而失效。

Locale Interceptor

使用攔截器、通過頁面參數(shù)設(shè)置Locale。SpringMVC提供了一個(gè)LocaleChangeInterceptor攔截器,可以直接使用。

比如:

<bean id="localeChangeInterceptor"
        class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
    <property name="paramName" value="siteLanguage"/>
</bean>
<bean id="localeResolver"
        class="org.springframework.web.servlet.i18n.CookieLocaleResolver"/>
<bean id="urlMapping"
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="interceptors">
        <list>
            <ref bean="localeChangeInterceptor"/>
        </list>
    </property>
    <property name="mappings">
        <value>/**/*.view=someController</value>
    </property>
</bean>

配置localeChangeInterceptor,指定其參數(shù)名稱為siteLanguage,將該攔截器配置到SimpleUrlHandlerMapping上,對*.view請求,根據(jù)請求參數(shù)siteLanguage決定其locale。

以上就是Spring MVC Locale 本地化示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Spring MVC Locale 本地化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論