クラス CookieLocaleResolver
- 実装されたすべてのインターフェース:
LocaleContextResolver
,LocaleResolver
Accept-Language
ヘッダー、サーバーのデフォルトロケールにフォールバックする LocaleResolver
実装。これは、ユーザーセッションのないステートレスアプリケーションに特に役立ちます。Cookie には、オプションで関連するタイムゾーン値も含めることができます。または、デフォルトのタイムゾーンを指定できます。
カスタムコントローラーは、リゾルバーで #setLocale(Context)
を呼び出すことによって、ユーザーのロケールとタイムゾーンをオーバーライドできます (たとえば、ロケール変更リクエストに応答するなど)。より便利な代替手段として、RequestContext.changeLocale(java.util.Locale)
の使用を検討してください。
- 導入:
- 27.02.2003
- 作成者:
- Juergen Hoeller, Jean-Pierre Pawlak, Vedran Pavic, Sam Brannen
- 関連事項:
フィールドサマリー
コンストラクターのサマリー
コンストラクター説明デフォルトの Cookie name を持つコンストラクター。CookieLocaleResolver
(StringSE cookieName) 指定された Cookie 名を持つコンストラクター。方法の概要
修飾子と型メソッド説明protected LocaleSE
使用すべきではありません。protected TimeZoneSE
使用すべきではありません。6.0 現在、setDefaultTimeZoneFunction(Function)
を推奨boolean
このリゾルバーの Cookie が Java のレガシーロケール仕様形式ではなく、BCP 47 言語タグに準拠する必要があるかどうかを返します。boolean
無効なコンテンツ (無効な形式など) を含む Cookie を拒否するかどうかを返します。protected LocaleSE
parseLocaleValue
(StringSE localeValue) 受信 Cookie から取得した特定のロケール値を解析します。resolveLocale
(HttpServletRequestEE request) LocaleContextResolver.resolveLocaleContext(HttpServletRequest)
に委譲し、必要に応じてServletRequest.getLocale()
EE にフォールバックするLocaleResolver.resolveLocale(HttpServletRequest)
のデフォルト実装。resolveLocaleContext
(HttpServletRequestEE request) 指定されたリクエストを介して現在のロケールコンテキストを解決します。void
setCookieDomain
(StringSE cookieDomain) Cookie "Domain" 属性を設定します。void
setCookieHttpOnly
(boolean cookieHttpOnly) "HttpOnly" 属性を Cookie に追加します。void
setCookieMaxAge
(IntegerSE cookieMaxAge) 使用すべきではありません。6.0 現在、setCookieMaxAge(Duration)
を推奨void
setCookieMaxAge
(DurationSE cookieMaxAge) Cookie "Max-Age" 属性を設定します。void
setCookieName
(StringSE cookieName) 使用すべきではありません。6.0 現在、CookieLocaleResolver(String)
を推奨void
setCookiePath
(StringSE cookiePath) Cookie "Path" 属性を設定します。void
setCookieSameSite
(StringSE cookieSameSite) "SameSite" 属性を Cookie に追加します。void
setCookieSecure
(boolean cookieSecure) "Secure" 属性を Cookie に追加します。void
setDefaultLocaleFunction
(FunctionSE<HttpServletRequestEE, LocaleSE> defaultLocaleFunction) 指定されたリクエストのデフォルトロケールを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。void
setDefaultTimeZoneFunction
(FunctionSE<HttpServletRequestEE, TimeZoneSE> defaultTimeZoneFunction) 指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。void
setLanguageTagCompliant
(boolean languageTagCompliant) このリゾルバーの Cookie が Java のレガシーロケール仕様形式ではなく、BCP 47 言語タグに準拠する必要があるかどうかを指定します。void
setLocaleContext
(HttpServletRequestEE request, HttpServletResponseEE response, LocaleContext localeContext) 現在のロケールコンテキストを指定されたものに設定します。潜在的に関連するタイムゾーン情報を持つロケールを含みます。void
setRejectInvalidCookies
(boolean rejectInvalidCookies) 無効なコンテンツ (無効な形式など) を含む Cookie を拒否するかどうかを指定します。protected StringSE
toLocaleValue
(LocaleSE locale) 指定されたロケールを、Cookie に含めるためのテキスト値としてレンダリングします。クラス 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_REQUEST_ATTRIBUTE_NAME
Locale
を保持するリクエスト属性の名前。現在のリクエストの過程でロケールが変更された場合にのみ、Cookie 値をオーバーライドするために使用されます!
RequestContext(Utils).getLocale()
を使用して、コントローラーまたはビューの現在のロケールを取得します。TIME_ZONE_REQUEST_ATTRIBUTE_NAME
TimeZone
を保持するリクエスト属性の名前。現在のリクエストの過程でロケールが変更された場合にのみ、Cookie 値をオーバーライドするために使用されます!
RequestContext(Utils).getTimeZone()
を使用して、コントローラーまたはビューの現在のタイムゾーンを取得します。DEFAULT_COOKIE_NAME
明示的に設定されていない場合に使用されるデフォルトの Cookie 名。
コンストラクターの詳細
CookieLocaleResolver
指定された Cookie 名を持つコンストラクター。- 導入:
- 6.0
CookieLocaleResolver
public CookieLocaleResolver()デフォルトの Cookie name を持つコンストラクター。
メソッドの詳細
setCookieName
使用すべきではありません。6.0 現在、CookieLocaleResolver(String)
を推奨このリゾルバーによって作成される Cookie の名前を設定します。- パラメーター:
cookieName
- クッキー名
setCookieMaxAge
Cookie "Max-Age" 属性を設定します。デフォルトでは、これは -1 に設定されており、この場合、Cookie はブラウザーがシャットダウンするまで保持されます。
setCookieMaxAge
使用すべきではありません。6.0 現在、setCookieMaxAge(Duration)
を推奨秒単位の値を持つsetCookieMaxAge(Duration)
のバリアント。setCookiePath
Cookie "Path" 属性を設定します。デフォルトでは、これは
"/"
に設定されています。setCookieDomain
Cookie "Domain" 属性を設定します。setCookieSecure
public void setCookieSecure(boolean cookieSecure) "Secure" 属性を Cookie に追加します。setCookieHttpOnly
public void setCookieHttpOnly(boolean cookieHttpOnly) "HttpOnly" 属性を Cookie に追加します。setCookieSameSite
"SameSite" 属性を Cookie に追加します。デフォルトでは、これは
"Lax"
に設定されています。setLanguageTagCompliant
public void setLanguageTagCompliant(boolean languageTagCompliant) このリゾルバーの Cookie が Java のレガシーロケール仕様形式ではなく、BCP 47 言語タグに準拠する必要があるかどうかを指定します。デフォルトは 5.1 の時点で
true
です。これをfalse
に切り替えて、Java のレガシーロケール仕様形式をレンダリングします。解析のために、このリゾルバーは、どのような場合でもレガシーLocale.toString()
形式と BCP 47 言語タグを寛容に受け入れます。isLanguageTagCompliant
public boolean isLanguageTagCompliant()このリゾルバーの Cookie が Java のレガシーロケール仕様形式ではなく、BCP 47 言語タグに準拠する必要があるかどうかを返します。- 導入:
- 4.3
setRejectInvalidCookies
public void setRejectInvalidCookies(boolean rejectInvalidCookies) 無効なコンテンツ (無効な形式など) を含む Cookie を拒否するかどうかを指定します。デフォルトは
true
です。解析エラーの寛容な処理のためにこれをオフにし、そのような場合デフォルトのロケールとタイムゾーンにフォールバックします。isRejectInvalidCookies
public boolean isRejectInvalidCookies()無効なコンテンツ (無効な形式など) を含む Cookie を拒否するかどうかを返します。- 導入:
- 5.1.7
setDefaultLocaleFunction
public void setDefaultLocaleFunction(FunctionSE<HttpServletRequestEE, LocaleSE> defaultLocaleFunction) 指定されたリクエストのデフォルトロケールを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。デフォルトの実装は、構成されたデフォルトのロケールを返します(存在する場合)。それ以外の場合は、リクエストの
Accept-Language
ヘッダーロケールまたはサーバーのデフォルトのロケールにフォールバックします。- パラメーター:
defaultLocaleFunction
- デフォルトのロケールを決定するために使用される関数- 導入:
- 6.0
- 関連事項:
setDefaultTimeZoneFunction
public void setDefaultTimeZoneFunction(FunctionSE<HttpServletRequestEE, TimeZoneSE> defaultTimeZoneFunction) 指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。デフォルトの実装は、構成されたデフォルトのタイムゾーン(存在する場合)を返し、そうでない場合は
null
を返します。- パラメーター:
defaultTimeZoneFunction
- デフォルトのタイムゾーンを決定するために使用される関数- 導入:
- 6.0
- 関連事項:
resolveLocale
インターフェースからコピーされた説明:LocaleContextResolver
LocaleContextResolver.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
- 関連事項:
parseLocaleValue
受信 Cookie から取得した特定のロケール値を解析します。デフォルトの実装は
StringUtils.parseLocale(String)
を呼び出し、Locale.toString()
形式と BCP 47 言語タグを受け入れます。- パラメーター:
localeValue
- 解析するロケール値- 戻り値:
- 対応する
Locale
インスタンス - 導入:
- 4.3
- 関連事項:
toLocaleValue
指定されたロケールを、Cookie に含めるためのテキスト値としてレンダリングします。デフォルトの実装では、
"languageTagCompliant"
構成プロパティに応じて、Locale.toString()
またはLocale.toLanguageTag()
が呼び出されます。- パラメーター:
locale
- 文字列に変換するロケール- 戻り値:
- 指定されたロケールの文字列表現
- 導入:
- 4.3
- 関連事項:
determineDefaultLocale
使用すべきではありません。6.0 現在、setDefaultLocaleFunction(Function)
を推奨ロケール Cookie が見つからなかった場合に呼び出される、指定されたリクエストのデフォルトロケールを決定します。デフォルトの実装は、構成されたデフォルトロケールを返します。それ以外の場合は、リクエストの
Accept-Language
ヘッダーロケールまたはサーバーのデフォルトロケールにフォールバックします。- パラメーター:
request
- ロケールを解決するためのリクエスト- 戻り値:
- デフォルトのロケール (非
null
) - 関連事項:
determineDefaultTimeZone
@DeprecatedSE(since="6.0") @Nullable protected TimeZoneSE determineDefaultTimeZone(HttpServletRequestEE request) 使用すべきではありません。6.0 現在、setDefaultTimeZoneFunction(Function)
を推奨指定されたリクエストのデフォルトのタイムゾーンを決定します。ロケール Cookie が見つからなかった場合に呼び出されます。デフォルトの実装は、構成されたデフォルトのタイムゾーン(存在する場合)を返し、そうでない場合は
null
を返します。- パラメーター:
request
- タイムゾーンを解決するためのリクエスト- 戻り値:
- デフォルトのタイムゾーン (または定義されていない場合は
null
) - 関連事項:
setDefaultLocaleFunction(Function)
を推奨