クラス SessionLocaleResolver
- 実装されたすべてのインターフェース:
LocaleContextResolver
,LocaleResolver
Accept-Language
ヘッダー、サーバーのデフォルトロケールにフォールバックする LocaleResolver
実装。 これは、アプリケーションがユーザーセッションを必要とする場合、つまり、ユーザーのロケールを保存するためだけに HttpSession
を作成する必要がない場合に最も適しています。セッションには、オプションで関連するタイムゾーン属性も含めることができます。または、デフォルトのタイムゾーンを指定できます。
カスタムコントローラーは、リゾルバーで #setLocale(Context)
を呼び出すことにより、ユーザーのロケールとタイムゾーンをオーバーライドできます。ロケール変更リクエストへの応答。より便利な代替手段として、RequestContext.changeLocale(java.util.Locale)
の使用を検討してください。
CookieLocaleResolver
とは対照的に、この戦略はローカルに選択されたロケール設定をサーブレットコンテナーの HttpSession
に保存します。結果として、これらの設定は各セッションに対して一時的なものであるため、各セッションが終了すると失われます。
"Spring Session" プロジェクトなどの外部セッション管理メカニズムと直接的な関連はないことに注意してください。この LocaleResolver
は、単に現在の HttpServletRequest
に対して対応する HttpSession
属性を評価および変更します。
- 導入:
- 27.02.2003
- 作成者:
- Juergen Hoeller, Vedran Pavic
- 関連事項:
フィールドサマリー
フィールドコンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected LocaleSE
使用すべきではありません。protected TimeZoneSE
使用すべきではありません。6.0 現在、setDefaultTimeZoneFunction(Function)
を推奨resolveLocale
(HttpServletRequestEE request) LocaleContextResolver.resolveLocaleContext(HttpServletRequest)
に委譲し、必要に応じてServletRequest.getLocale()
にフォールバックするLocaleResolver.resolveLocale(HttpServletRequest)
のデフォルト実装。resolveLocaleContext
(HttpServletRequestEE request) 指定されたリクエストを介して現在のロケールコンテキストを解決します。void
setDefaultLocaleFunction
(FunctionSE<HttpServletRequestEE, LocaleSE> defaultLocaleFunction) Locale
SE セッション属性が見つからない場合に呼び出される、指定されたリクエストのデフォルトロケールを決定するために使用される関数を設定します。void
setDefaultTimeZoneFunction
(FunctionSE<HttpServletRequestEE, TimeZoneSE> defaultTimeZoneFunction) TimeZone
SE セッション属性が見つからない場合に呼び出される、指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。void
setLocaleAttributeName
(StringSE localeAttributeName) HttpSession
の対応する属性の名前を指定し、現在のLocale
SE 値を保持します。void
setLocaleContext
(HttpServletRequestEE request, HttpServletResponseEE response, LocaleContext localeContext) 現在のロケールコンテキストを指定されたものに設定します。潜在的に関連するタイムゾーン情報を持つロケールを含みます。void
setTimeZoneAttributeName
(StringSE timeZoneAttributeName) HttpSession
の対応する属性の名前を指定し、現在のTimeZone
SE 値を保持します。クラス org.springframework.web.servlet.i18n.AbstractLocaleContextResolver から継承されたメソッド
getDefaultTimeZone, setDefaultTimeZone
クラス org.springframework.web.servlet.i18n.AbstractLocaleResolver から継承されたメソッド
getDefaultLocale, setDefaultLocale
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.web.servlet.LocaleContextResolver から継承されたメソッド
setLocale
フィールドの詳細
LOCALE_SESSION_ATTRIBUTE_NAME
ロケールを保持するセッション属性のデフォルト名。この実装によって内部的にのみ使用されます。
RequestContext(Utils).getLocale()
を使用して、コントローラーまたはビューの現在のロケールを取得します。TIME_ZONE_SESSION_ATTRIBUTE_NAME
TimeZone を保持するセッション属性のデフォルト名。この実装によって内部的にのみ使用されます。
RequestContext(Utils).getTimeZone()
を使用して、コントローラーまたはビューの現在のタイムゾーンを取得します。
コンストラクターの詳細
SessionLocaleResolver
public SessionLocaleResolver()
メソッドの詳細
setLocaleAttributeName
- 導入:
- 4.3.8
setTimeZoneAttributeName
- 導入:
- 4.3.8
setDefaultLocaleFunction
public void setDefaultLocaleFunction(FunctionSE<HttpServletRequestEE, LocaleSE> defaultLocaleFunction) Locale
SE セッション属性が見つからない場合に呼び出される、指定されたリクエストのデフォルトロケールを決定するために使用される関数を設定します。デフォルトの実装は、構成されたデフォルトのロケールを返します(存在する場合)。それ以外の場合は、リクエストの
Accept-Language
ヘッダーロケールまたはサーバーのデフォルトのロケールにフォールバックします。- パラメーター:
defaultLocaleFunction
- デフォルトのロケールを決定するために使用される関数- 導入:
- 6.0
- 関連事項:
setDefaultTimeZoneFunction
public void setDefaultTimeZoneFunction(FunctionSE<HttpServletRequestEE, TimeZoneSE> defaultTimeZoneFunction) TimeZone
SE セッション属性が見つからない場合に呼び出される、指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。デフォルトの実装は、構成されたデフォルトのタイムゾーン(存在する場合)を返し、そうでない場合は
null
を返します。- パラメーター:
defaultTimeZoneFunction
- デフォルトのタイムゾーンを決定するために使用される関数- 導入:
- 6.0
- 関連事項:
resolveLocale
インターフェースからコピーされた説明:LocaleContextResolver
LocaleContextResolver.resolveLocaleContext(HttpServletRequest)
に委譲し、必要に応じてServletRequest.getLocale()
にフォールバックするLocaleResolver.resolveLocale(HttpServletRequest)
のデフォルト実装。- パラメーター:
request
- ロケールを解決するためのリクエスト- 戻り値:
- 現在のロケール (非
null
)
resolveLocaleContext
インターフェースからコピーされた説明:LocaleContextResolver
指定されたリクエストを介して現在のロケールコンテキストを解決します。これは主にフレームワークレベルの処理を目的としています。現在のロケールやタイムゾーンへのアプリケーションレベルのアクセスには、
RequestContextUtils
またはRequestContext
の使用を検討してください。返されるコンテキストは、タイムゾーン情報が関連付けられたロケールを含む
TimeZoneAwareLocaleContext
である場合があります。instanceof
チェックを適用し、それに応じてダウンキャストするだけです。カスタムリゾルバーの実装は、返されたコンテキストで追加の設定を返すこともありますが、これもダウンキャストを通じてアクセスできます。
- パラメーター:
request
- ロケールコンテキストを解決するためのリクエスト- 戻り値:
- 現在のロケールコンテキスト(非
null
- 関連事項:
setLocaleContext
public void setLocaleContext(HttpServletRequestEE request, @Nullable HttpServletResponseEE response, @Nullable LocaleContext localeContext) インターフェースからコピーされた説明:LocaleContextResolver
現在のロケールコンテキストを指定されたものに設定します。潜在的に関連するタイムゾーン情報を持つロケールを含みます。- パラメーター:
request
- ロケール変更に使用されるリクエストresponse
- ロケール変更に使用されるレスポンスlocaleContext
- 新しいロケールコンテキスト、またはロケールをクリアするnull
- 関連事項:
determineDefaultLocale
使用すべきではありません。6.0 現在、setDefaultLocaleFunction(Function)
を推奨Locale
SE セッション属性が見つからなかった場合に呼び出される、指定されたリクエストのデフォルトのロケールを決定します。デフォルトの実装は、構成されたデフォルトのロケールを返します(存在する場合)。それ以外の場合は、リクエストの
Accept-Language
ヘッダーロケールまたはサーバーのデフォルトのロケールにフォールバックします。- パラメーター:
request
- ロケールを解決するためのリクエスト- 戻り値:
- デフォルトのロケール (非
null
) - 関連事項:
determineDefaultTimeZone
@DeprecatedSE(since="6.0") @Nullable protected TimeZoneSE determineDefaultTimeZone(HttpServletRequestEE request) 使用すべきではありません。6.0 現在、setDefaultTimeZoneFunction(Function)
を推奨TimeZone
SE セッション属性が見つからなかった場合に呼び出される、指定されたリクエストのデフォルトのタイムゾーンを決定します。デフォルトの実装は、構成されたデフォルトのタイムゾーン(存在する場合)を返し、そうでない場合は
null
を返します。- パラメーター:
request
- タイムゾーンを解決するためのリクエスト- 戻り値:
- デフォルトのタイムゾーン (または定義されていない場合は
null
) - 関連事項:
setDefaultLocaleFunction(Function)
を推奨