public interface LocaleResolver このインターフェースでは、リクエスト、セッション、Cookie などに基づく実装が可能です。デフォルトの実装は AcceptHeaderLocaleResolver で、それぞれの HTTP ヘッダーによって提供されるリクエストのロケールを使用するだけです。
RequestContext.getLocale() を使用して、実際の解決戦略に関係なく、コントローラーまたはビューで現在のロケールを取得します。
メモ: Spring 4.0 の時点で、LocaleContextResolver と呼ばれる拡張戦略インターフェースがあり、関連するタイムゾーン情報を含む可能性のある LocaleContext オブジェクトの解決が可能です。Spring が提供するリゾルバーの実装は、必要に応じて拡張 LocaleContextResolver インターフェースを実装します。
LocaleContextResolver, LocaleContextHolder, RequestContext.getLocale(), RequestContextUtils.getLocale(javax.servlet.http.HttpServletRequest)| 修飾子と型 | メソッドと説明 |
|---|---|
LocaleSE | resolveLocale(HttpServletRequestEE request) 指定されたリクエストを介して現在のロケールを解決します。 |
void | setLocale(HttpServletRequestEE request, HttpServletResponseEE response, LocaleSE locale) 現在のロケールを指定されたロケールに設定します。 |
LocaleSE resolveLocale(HttpServletRequestEE request)
いずれの場合も、デフォルトのロケールをフォールバックとして返すことができます。
request - ロケールを解決するためのリクエスト null)void setLocale(HttpServletRequestEE request, @Nullable HttpServletResponseEE response, @Nullable LocaleSE locale)
request - ロケール変更に使用されるリクエスト response - ロケール変更に使用されるレスポンス locale - 新しいロケール、またはロケールをクリアする null UnsupportedOperationExceptionSE - LocaleResolver 実装がロケールの動的変更をサポートしていない場合