Detekce národního prostředí

V modulu MVC rámce Spring™ je problém internacionalizace usnadněn existencí takzvaných detektorů národního prostředí (objektů typu LocaleResolver). Jakým způsobem je objekt typu LocaleResolver zařazen do řetězu zpracování HTTP požadavku, jsme si ukázali dříve (viz „Cesta požadavku útrobami Spring MVC“). Jeho účel je jednoduchý. V libovolném kroku zpracování požadavku má za úkol vrátit objekt typu Locale příslušný tomuto požadavku. Existuje několik implementací tohoto rozhraní, které reprezentují různé strategie detekce národního prostředí.

Na základě HTTP hlaviček požadavku

Není-li v aplikačním kontextu daného servletu uvedena žádná deklarace s názvem localeResolver, je použita defaultní implementace, tedy AcceptHeaderLocaleResolver. Tato implementace určí Locale požadavku na základě HTTP hlaviček tohoto požadavku.

Na základě předdefinovaného parametru

Vrací vždy stejný Locale. XML definice může vypadat například takto:

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

Na základě uživatelského sezení

Vrací objekt typu Locale uložený v uživatelském sezení (v objektu HttpSession příslušném aktuálnímu uživateli). V případě, že v uživatelském sezení není uložena žádná instance Locale, tak je aplikován AcceptHeaderLocaleResolver. Definice:

<bean id="localeResolver" 
      class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

Na základě cookies

Obdoba SessionLocaleResolver s tím rozdílem, že Locale je pro daného uživatele uchováván prostřednictvím klasických cookies. To je užitečné v případě bezstavových webových aplikací, kde se uživatelská sezení nepoužívají. Definice:

<bean id="localeResolver" 
      class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />

Komentáře

Téma neobsahuje žádné komentáře.

Vložit komentář

Můžete používat značkovací jazyk Texy!


Jméno:
E-mail:
Url:
Komentář:
1 + 2 =
 
MoroSystems, s.r.o.