クラス 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()EE にフォールバックするLocaleResolver.resolveLocale(HttpServletRequest)のデフォルト実装。resolveLocaleContext(HttpServletRequestEE request) 指定されたリクエストを介して現在のロケールコンテキストを解決します。voidsetDefaultLocaleFunction(FunctionSE<HttpServletRequestEE, LocaleSE> defaultLocaleFunction) LocaleSE セッション属性が見つからない場合に呼び出される、指定されたリクエストのデフォルトロケールを決定するために使用される関数を設定します。voidsetDefaultTimeZoneFunction(FunctionSE<HttpServletRequestEE, TimeZoneSE> defaultTimeZoneFunction) TimeZoneSE セッション属性が見つからない場合に呼び出される、指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。voidsetLocaleAttributeName(StringSE localeAttributeName) HttpSessionの対応する属性の名前を指定し、現在のLocaleSE 値を保持します。voidsetLocaleContext(HttpServletRequestEE request, HttpServletResponseEE response, LocaleContext localeContext) 現在のロケールコンテキストを指定されたものに設定します。潜在的に関連するタイムゾーン情報を持つロケールを含みます。voidsetTimeZoneAttributeName(StringSE timeZoneAttributeName) HttpSessionの対応する属性の名前を指定し、現在のTimeZoneSE 値を保持します。クラス 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) LocaleSE セッション属性が見つからない場合に呼び出される、指定されたリクエストのデフォルトロケールを決定するために使用される関数を設定します。デフォルトの実装は、構成されたデフォルトのロケールを返します(存在する場合)。それ以外の場合は、リクエストの
Accept-Languageヘッダーロケールまたはサーバーのデフォルトのロケールにフォールバックします。- パラメーター:
defaultLocaleFunction- デフォルトのロケールを決定するために使用される関数- 導入:
- 6.0
- 関連事項:
setDefaultTimeZoneFunction
public void setDefaultTimeZoneFunction(FunctionSE<HttpServletRequestEE, TimeZoneSE> defaultTimeZoneFunction) TimeZoneSE セッション属性が見つからない場合に呼び出される、指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。デフォルトの実装は、構成されたデフォルトのタイムゾーン(存在する場合)を返し、そうでない場合は
nullを返します。- パラメーター:
defaultTimeZoneFunction- デフォルトのタイムゾーンを決定するために使用される関数- 導入:
- 6.0
- 関連事項:
resolveLocale
インターフェースからコピーされた説明:LocaleContextResolverLocaleContextResolver.resolveLocaleContext(HttpServletRequest)に委譲し、必要に応じてServletRequest.getLocale()EE にフォールバックする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)を推奨LocaleSE セッション属性が見つからなかった場合に呼び出される、指定されたリクエストのデフォルトのロケールを決定します。デフォルトの実装は、構成されたデフォルトのロケールを返します(存在する場合)。それ以外の場合は、リクエストの
Accept-Languageヘッダーロケールまたはサーバーのデフォルトのロケールにフォールバックします。- パラメーター:
request- ロケールを解決するためのリクエスト- 戻り値:
- デフォルトのロケール (非
null) - 関連事項:
determineDefaultTimeZone
@DeprecatedSE(since="6.0") @Nullable protected TimeZoneSE determineDefaultTimeZone(HttpServletRequestEE request) 使用すべきではありません。6.0 現在、setDefaultTimeZoneFunction(Function)を推奨TimeZoneSE セッション属性が見つからなかった場合に呼び出される、指定されたリクエストのデフォルトのタイムゾーンを決定します。デフォルトの実装は、構成されたデフォルトのタイムゾーン(存在する場合)を返し、そうでない場合は
nullを返します。- パラメーター:
request- タイムゾーンを解決するためのリクエスト- 戻り値:
- デフォルトのタイムゾーン (または定義されていない場合は
null) - 関連事項:
setDefaultLocaleFunction(Function)を推奨