クラス 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 名を持つコンストラクター。メソッドのサマリー
修飾子と型メソッド説明booleanこのリゾルバーの Cookie が Java のレガシーロケール仕様形式ではなく、BCP 47 言語タグに準拠する必要があるかどうかを返します。boolean無効なコンテンツ (無効な形式など) を含む Cookie を拒否するかどうかを返します。parseLocaleValue(StringSE localeValue) 受信 Cookie から取得した特定のロケール値を解析します。resolveLocale(HttpServletRequestEE request) 指定されたリクエストを介して現在のロケールを解決します。resolveLocaleContext(HttpServletRequestEE request) 指定されたリクエストを介して現在のロケールコンテキストを解決します。voidsetCookieDomain(@Nullable StringSE cookieDomain) Cookie "Domain" 属性を設定します。voidsetCookieHttpOnly(boolean cookieHttpOnly) "HttpOnly" 属性を Cookie に追加します。voidsetCookieMaxAge(DurationSE cookieMaxAge) Cookie "Max-Age" 属性を設定します。voidsetCookiePath(@Nullable StringSE cookiePath) Cookie "Path" 属性を設定します。voidsetCookieSameSite(StringSE cookieSameSite) "SameSite" 属性を Cookie に追加します。voidsetCookieSecure(boolean cookieSecure) "Secure" 属性を Cookie に追加します。voidsetDefaultLocaleFunction(FunctionSE<HttpServletRequestEE, LocaleSE> defaultLocaleFunction) 指定されたリクエストのデフォルトロケールを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。voidsetDefaultTimeZoneFunction(FunctionSE<HttpServletRequestEE, @Nullable TimeZoneSE> defaultTimeZoneFunction) 指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。voidsetLanguageTagCompliant(boolean languageTagCompliant) このリゾルバーの Cookie が Java のレガシーロケール仕様形式ではなく、BCP 47 言語タグに準拠する必要があるかどうかを指定します。voidsetLocaleContext(HttpServletRequestEE request, @Nullable HttpServletResponseEE response, @Nullable LocaleContext localeContext) 現在のロケールコンテキストを指定されたものに設定します。潜在的に関連するタイムゾーン情報を持つロケールを含みます。voidsetRejectInvalidCookies(boolean rejectInvalidCookies) 無効なコンテンツ (無効な形式など) を含む Cookie を拒否するかどうかを指定します。protected StringSEtoLocaleValue(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
CookieLocaleResolver
public CookieLocaleResolver()デフォルトの Cookie name を持つコンストラクター。
メソッドの詳細
setCookieMaxAge
Cookie "Max-Age" 属性を設定します。デフォルトでは、これは -1 に設定されており、この場合、Cookie はブラウザーがシャットダウンするまで保持されます。
- 導入:
- 6.0
- 関連事項:
setCookiePath
setCookieDomain
setCookieSecure
public void setCookieSecure(boolean cookieSecure) "Secure" 属性を Cookie に追加します。- 関連事項:
setCookieHttpOnly
public void setCookieHttpOnly(boolean cookieHttpOnly) "HttpOnly" 属性を Cookie に追加します。- 関連事項:
setCookieSameSite
"SameSite" 属性を Cookie に追加します。デフォルトでは、これは
"Lax"に設定されています。- 導入:
- 6.0
- 関連事項:
setLanguageTagCompliant
public void setLanguageTagCompliant(boolean languageTagCompliant) このリゾルバーの Cookie が Java のレガシーロケール仕様形式ではなく、BCP 47 言語タグに準拠する必要があるかどうかを指定します。デフォルトは 5.1 の時点で
trueです。これをfalseに切り替えて、Java のレガシーロケール仕様形式をレンダリングします。解析のために、このリゾルバーは、どのような場合でもレガシーLocale.toString()形式と BCP 47 言語タグを寛容に受け入れます。- 導入:
- 4.3
- 関連事項:
isLanguageTagCompliant
public boolean isLanguageTagCompliant()このリゾルバーの Cookie が Java のレガシーロケール仕様形式ではなく、BCP 47 言語タグに準拠する必要があるかどうかを返します。- 導入:
- 4.3
setRejectInvalidCookies
public void setRejectInvalidCookies(boolean rejectInvalidCookies) 無効なコンテンツ (無効な形式など) を含む Cookie を拒否するかどうかを指定します。デフォルトは
trueです。解析エラーの寛容な処理のためにこれをオフにし、そのような場合デフォルトのロケールとタイムゾーンにフォールバックします。- 導入:
- 5.1.7
- 関連事項:
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, @Nullable TimeZoneSE> defaultTimeZoneFunction) 指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。デフォルトの実装は、構成されたデフォルトのタイムゾーン(存在する場合)を返し、そうでない場合は
nullを返します。- パラメーター:
defaultTimeZoneFunction- デフォルトのタイムゾーンを決定するために使用される関数- 導入:
- 6.0
- 関連事項:
resolveLocale
インターフェースからコピーされた説明:LocaleResolver指定されたリクエストを介して現在のロケールを解決します。いずれの場合も、デフォルトのロケールをフォールバックとして返すことができます。
- パラメーター:
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
- 関連事項: