Spring MVC - Locale
프로그래밍/Spring MVC 2009. 12. 23. 14:07
Using locales
Spring 에서는 국제화를 지원한다. DispatcherServlet 은 자동으로 사용자의 locale 을 파악할 수 있다. 이때 사용자의 locale 을 파악하기 위해LocaleResolver 가 사용된다.
request 가 들어오면 DispatcherServlet 이 locale resolver 를 찾게 되고 찾은 locale resolver 는 사용자의 locale 을 설정한다.
사용자는 RequestContext.getLocale() static 메소드로 설정된 locale 을 가져올 수 있다.
AcceptHeaderLocaleResolver
request 의 accept-language 헤더를 사용해서 locale 을 결정한다.
CookieLocaleResolver
cookie 에 설정된 locale 정보를 사용해서 사용자의 locale 을 결정한다.
<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>
SessionLocaleResolver
Session 에서 locale 정보를 가져온다.
LocaleChangeInterceptor
handler mapping 에 interceptor 로 설정되어 설정된 parameter 의 값으로 locale 을 설정한다.
<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>
.view 로 들어오는 모든 request 에 대해서는 LocaleChangeInterceptor 가 수행되도록 설정되어 있다.
그리고 LocaleChangeInterceptor 의 paramName 으로 siteLanguage 가 설정되어 있다.
따라서 http://www.sf.net/home.view?siteLanguage=nl 이라면 해당 request 에 대한 locale 은 nl 로 설정된다.
'프로그래밍 > Spring MVC' 카테고리의 다른 글
| Spring MVC - fileupload (0) | 2009.12.24 |
|---|---|
| Spring MVC - Themes (0) | 2009.12.23 |
| Spring MVC - Views (0) | 2009.12.23 |
| Spring MVC - Handler Mapping (0) | 2009.12.22 |
| Spring MVC - Controllers (0) | 2009.12.22 |