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 |