2012-05-19 71 views
1

當前區域我用這個簡單的配置春天本地化解析器 - 在URL

<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
     <beans:property name="basename" value="classpath:localization/messages" /> 
     <beans:property name="defaultEncoding" value="UTF-8" /> 
    </beans:bean> 

    <interceptors> 
     <beans:bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
      <beans:property name="paramName" value="lang" /> 
     </beans:bean> 
    </interceptors> 

    <beans:bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> 
     <beans:property name="defaultLocale" value="en" /> 
     <beans:property name="cookieMaxAge" value="100000" /> 
    </beans:bean> 

作品不錯,但如果有人有什麼會發送一個網址給別人?這隻適用於客戶端瀏覽器,如果用戶更改本地化,它將設置一個cookie。我看到很多網站,他們有一個本地化後的第一個斜槓(例如nette.org/en/about)本地化。當有人發送此鏈接時,它將根據網址解析本地化。在spring框架中是否存在任何簡單的解決方案?以某種方式在url中映射這個地方?

回答

-1

而不是CookieLocaleResolver使用SessionLocaleResolver

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

我認爲這應該可以解決您的問題。

乾杯。

+0

有什麼區別?也許從我的帖子不清楚我的目標是什麼。有人正在以「de」語言環境查看我的網頁,他想將網址發送給其他人,但頁面將以默認語言環境(en)顯示給打開此網址的人,這正是我不想要的。我想在同一個語言環境(de)中打開一個頁面。您的解決方案無法解決此問題 –

+0

唯一的解決方案是獲取url中的語言環境,我的問題是如果這可以簡單地用spring來完成,我的意思是一些攔截器,它將當前語言環境添加到所有url中。 –

+0

這絕對是......我在我的項目中使用了同樣的東西。 –