クラス CookieLocaleResolver
- 実装されているすべてのインターフェース:
LocaleContextResolver, LocaleResolver
Accept-Language ヘッダー、サーバーのデフォルトロケールにフォールバックする LocaleResolver 実装。これは、ユーザーセッションのないステートレスアプリケーションに特に役立ちます。Cookie には、オプションで関連するタイムゾーン値も含めることができます。または、デフォルトのタイムゾーンを指定できます。
カスタムコントローラーは、リゾルバーで #setLocale(Context) を呼び出すことによって、ユーザーのロケールとタイムゾーンをオーバーライドできます (たとえば、ロケール変更リクエストに応答するなど)。より便利な代替手段として、RequestContext.changeLocale(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(jakarta.servlet.http.HttpServletRequest request) 指定されたリクエストを介して現在のロケールを解決します。resolveLocaleContext(jakarta.servlet.http.HttpServletRequest 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<jakarta.servlet.http.HttpServletRequest, LocaleSE> defaultLocaleFunction) 指定されたリクエストのデフォルトロケールを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。voidsetDefaultTimeZoneFunction(FunctionSE<jakarta.servlet.http.HttpServletRequest, @Nullable TimeZoneSE> defaultTimeZoneFunction) 指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。voidsetLanguageTagCompliant(boolean languageTagCompliant) このリゾルバーの Cookie が Java のレガシーロケール仕様形式ではなく、BCP 47 言語タグに準拠する必要があるかどうかを指定します。voidsetLocaleContext(jakarta.servlet.http.HttpServletRequest request, @Nullable jakarta.servlet.http.HttpServletResponse response, @Nullable LocaleContext localeContext) 現在のロケールコンテキストを指定されたものに設定します。潜在的に関連するタイムゾーン情報を持つロケールを含みます。voidsetRejectInvalidCookies(boolean rejectInvalidCookies) 無効なコンテンツ (無効な形式など) を含む Cookie を拒否するかどうかを指定します。protected StringSEtoLocaleValue(LocaleSE locale) 指定されたロケールを、Cookie に含めるためのテキスト値としてレンダリングします。クラス AbstractLocaleContextResolver から継承されたメソッド
getDefaultTimeZone, setDefaultTimeZoneクラス AbstractLocaleResolver から継承されたメソッド
getDefaultLocale, setDefaultLocaleクラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース 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<jakarta.servlet.http.HttpServletRequest, LocaleSE> defaultLocaleFunction) 指定されたリクエストのデフォルトロケールを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。デフォルトの実装は、構成されたデフォルトのロケールを返します(存在する場合)。それ以外の場合は、リクエストの
Accept-Languageヘッダーロケールまたはサーバーのデフォルトのロケールにフォールバックします。- パラメーター:
defaultLocaleFunction- デフォルトのロケールを決定するために使用される関数- 導入:
- 6.0
- 関連事項:
setDefaultTimeZoneFunction
public void setDefaultTimeZoneFunction(FunctionSE<jakarta.servlet.http.HttpServletRequest, @Nullable TimeZoneSE> defaultTimeZoneFunction) 指定されたリクエストのデフォルトのタイムゾーンを決定するために使用される関数を設定します。ロケール Cookie が見つからない場合に呼び出されます。デフォルトの実装は、構成されたデフォルトのタイムゾーン(存在する場合)を返し、そうでない場合は
nullを返します。- パラメーター:
defaultTimeZoneFunction- デフォルトのタイムゾーンを決定するために使用される関数- 導入:
- 6.0
- 関連事項:
resolveLocale
インターフェースからコピーされた説明:LocaleResolver指定されたリクエストを介して現在のロケールを解決します。いずれの場合も、デフォルトのロケールをフォールバックとして返すことができます。
- パラメーター:
request- ロケールを解決するためのリクエスト- 戻り値:
- 現在のロケール (非
null)
resolveLocaleContext
インターフェースからコピーされた説明:LocaleContextResolver指定されたリクエストを介して現在のロケールコンテキストを解決します。これは主にフレームワークレベルの処理を目的としています。現在のロケールやタイムゾーンへのアプリケーションレベルのアクセスには、
RequestContextUtilsまたはRequestContextの使用を検討してください。返されるコンテキストは、タイムゾーン情報が関連付けられたロケールを含む
TimeZoneAwareLocaleContextである場合があります。instanceofチェックを適用し、それに応じてダウンキャストするだけです。カスタムリゾルバーの実装は、返されたコンテキストで追加の設定を返すこともありますが、これもダウンキャストを通じてアクセスできます。
- パラメーター:
request- ロケールコンテキストを解決するためのリクエスト- 戻り値:
- 現在のロケールコンテキスト(非
null - 関連事項:
setLocaleContext
public void setLocaleContext(jakarta.servlet.http.HttpServletRequest request, @Nullable jakarta.servlet.http.HttpServletResponse 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
- 関連事項: