Class HttpLanguageAttribute

java.lang.Object
nablarch.common.handler.threadcontext.LanguageAttribute
nablarch.common.web.handler.threadcontext.HttpLanguageAttribute
All Implemented Interfaces:
ThreadContextAttribute<Request<?>>
Direct Known Subclasses:
LanguageAttributeInHttpSupport

public class HttpLanguageAttribute extends LanguageAttribute
スレッドコンテキストに保持する言語属性をHTTPヘッダ(Accept-Language)から取得するクラス。
Author:
Kiyohito Itoh
  • Constructor Details

    • HttpLanguageAttribute

      public HttpLanguageAttribute()
  • Method Details

    • setSupportedLanguages

      public void setSupportedLanguages(String... supportedLanguages)
      サポート対象の言語を設定する。
      Parameters:
      supportedLanguages - サポート対象の言語
    • getValue

      public Object getValue(Request<?> req, ExecutionContext ctx)
      コンテキストスレッドに格納するこのプロパティの値を返す。

      getLocale(HttpRequest, ServletExecutionContext)に処理を委譲する。

      Specified by:
      getValue in interface ThreadContextAttribute<Request<?>>
      Overrides:
      getValue in class LanguageAttribute
      Parameters:
      req - リクエスト
      ctx - 実行コンテキスト
      Returns:
      サポート対象の言語
    • getLocale

      protected Locale getLocale(HttpRequest req, ServletExecutionContext ctx)
      スレッドコンテキストに保持する言語属性を返す。
       このクラスの実装では以下の処理を行う。
         
       1.Accept-Languageヘッダから言語の取得を試みる。
         (getAcceptLanguage(HttpRequest, ServletExecutionContext))
       
         サポート対象の言語が取得できた場合は取得できた言語を返す。
         サポート対象の言語が取得できない場合は2.に進む。
       
       2.デフォルトの言語を返す。
         (LanguageAttribute.getValue(Request, ExecutionContext))
       
       
      Parameters:
      req - リクエスト
      ctx - 実行コンテキスト
      Returns:
      サポート対象の言語
    • getAcceptLanguage

      protected String getAcceptLanguage(HttpRequest req, ServletExecutionContext ctx)
      "Accept-Language"ヘッダをパースし、一番優先度が高いサポート対象の言語を返す。
      Parameters:
      req - リクエスト
      ctx - 実行コンテキスト
      Returns:
      サポート対象の言語。サポート対象の言語が取得できない場合はnull。
    • isSupportedLanguage

      protected boolean isSupportedLanguage(String language)
      サポート対象の言語か否かを判定する。
      Parameters:
      language - 言語
      Returns:
      サポート対象の言語の場合はtrue