クラス MessageSourceSupport

java.lang.ObjectSE
org.springframework.context.support.MessageSourceSupport
既知の直属サブクラス
AbstractMessageSourceDelegatingMessageSource

public abstract class MessageSourceSupport extends ObjectSE
MessageFormatSE 処理などのサポートインフラストラクチャを提供するが、MessageSource で定義された具象メソッドを実装しない、メッセージソース実装の基本クラス。

AbstractMessageSource はこのクラスから派生し、メッセージコード解決のための主要テンプレートメソッドに委譲する具体的な getMessage 実装を提供します。

導入:
2.5.5
作成者:
Juergen Hoeller
  • フィールドの詳細

    • logger

      protected final Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • MessageSourceSupport

      public MessageSourceSupport()
  • メソッドの詳細

    • setAlwaysUseMessageFormat

      public void setAlwaysUseMessageFormat(boolean alwaysUseMessageFormat)
      常に MessageFormat ルールを適用して、引数のないメッセージも解析するかどうかを設定します。

      デフォルトは false です: 引数のないメッセージは、デフォルトでは、MessageFormat を介して解析せずに、そのまま返されます。これを true に設定すると、すべてのメッセージに MessageFormat が適用され、すべてのメッセージテキストが MessageFormat エスケープで書き込まれることが期待されます。

      例: MessageFormat は、単一引用符が 2 つの隣接する単一引用符("''")としてエスケープされることを想定しています。メッセージテキストがすべてこのようなエスケープで記述されている場合は、引数のプレースホルダーを定義していない場合でも、このフラグを true に設定する必要があります。それ以外の場合は、実際の引数を含むメッセージテキストのみが MessageFormat エスケープで書き込まれることになっています。

      関連事項:
    • isAlwaysUseMessageFormat

      protected boolean isAlwaysUseMessageFormat()
      常に MessageFormat ルールを適用するかどうかを返し、引数のないメッセージも解析します。
    • renderDefaultMessage

      protected StringSE renderDefaultMessage(StringSE defaultMessage, @Nullable ObjectSE[] args, LocaleSE locale)
      指定されたデフォルトのメッセージ文字列をレンダリングします。デフォルトのメッセージは、呼び出し元の指定に従って渡され、ユーザーに表示される完全にフォーマットされたデフォルトのメッセージにレンダリングできます。

      デフォルトの実装では、文字列を formatMessage に渡し、そこにある引数プレースホルダーを解決します。サブクラスはこのメソッドをオーバーライドして、デフォルトメッセージのカスタム処理をプラグインできます。

      パラメーター:
      defaultMessage - 渡されたデフォルトのメッセージ文字列
      args - メッセージ内の params に入力される引数の配列。ない場合は null
      locale - フォーマットに使用されるロケール
      戻り値:
      レンダリングされたデフォルトのメッセージ (解決された引数)
      関連事項:
    • formatMessage

      protected StringSE formatMessage(StringSE msg, @Nullable ObjectSE[] args, LocaleSE locale)
      キャッシュされた MessageFormats を使用して、指定されたメッセージ文字列をフォーマットします。デフォルトでは、渡されたデフォルトメッセージに対して呼び出され、メッセージ内で見つかった引数プレースホルダーを解決します。
      パラメーター:
      msg - フォーマットするメッセージ
      args - メッセージ内のパラメーターに入力される引数の配列、ない場合は null 
      locale - フォーマットに使用されるロケール
      戻り値:
      フォーマットされたメッセージ (解決された引数)
    • createMessageFormat

      protected MessageFormatSE createMessageFormat(StringSE msg, LocaleSE locale)
      指定されたメッセージとロケールの MessageFormat を作成します。
      パラメーター:
      msg - MessageFormat を作成するためのメッセージ
      locale - MessageFormat を作成するロケール
      戻り値:
      MessageFormat インスタンス
    • resolveArguments

      protected ObjectSE[] resolveArguments(@Nullable ObjectSE[] args, LocaleSE locale)
      引数オブジェクトを解決するためのテンプレートメソッド。

      デフォルトの実装は、指定された引数の配列をそのまま返します。特別な引数の型を解決するために、サブクラスでオーバーライドできます。

      パラメーター:
      args - 元の引数配列
      locale - 解決するロケール
      戻り値:
      解決された引数配列