public class MessageInterpolator extends Object
{...}の場合、変数を単純に置換する。
${...}の場合、EL式を利用し処理する。
文字'$', '{', '}'は特殊文字のため、\でエスケープを行う。
ELのパーサは、ExpressionLanguageの実装クラスで切り替え可能。
MessageResolverを指定した場合、メッセージ中の変数{...}をメッセージ定義コードとして解決する。
ただし、メッセージ変数で指定されている変数が優先される。
| コンストラクタと説明 |
|---|
MessageInterpolator()
デフォルトのコンストラクタ
式言語の処理実装として、JEXLの
ExpressionLanguageJEXLImpl が設定されます。 |
MessageInterpolator(ExpressionLanguage expressionLanguage)
式言語の実装を指定するコンストラクタ
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
protected String |
evaluateExpression(String expression,
Map<String,?> values)
EL式を評価する。
|
ExpressionLanguage |
getExpressionLanguage()
EL式を解析する実装クラスを取得する。
|
int |
getMaxRecursiveDepth()
評価した変数やEL式を再帰的に処するときの最大回数を取得します。
|
String |
interpolate(String message,
Map<String,?> vars)
メッセージを引数varsで指定した変数で補完する。
|
String |
interpolate(String message,
Map<String,?> vars,
boolean recursive)
メッセージを引数varsで指定した変数で補完する。
|
String |
interpolate(String message,
Map<String,?> vars,
boolean recursive,
MessageResolver messageResolver)
メッセージを引数varsで指定した変数で補完する。
|
protected String |
parse(String message,
Map<String,?> vars,
boolean recursive,
int currentRecursiveDepth,
MessageResolver messageResolver)
メッセージをパースし、変数に値を差し込み、EL式を評価する。
|
void |
setExpressionLanguage(ExpressionLanguage expressionLanguage)
EL式を解析する実装クラスを設定する。
|
void |
setMaxRecursiveDepth(int maxRecursiveDepth)
評価した変数やEL式を再帰的に処するときの最大回数を設定します。
|
public MessageInterpolator()
式言語の処理実装として、JEXLのExpressionLanguageJEXLImpl が設定されます。
public MessageInterpolator(ExpressionLanguage expressionLanguage)
expressionLanguage - EL式を評価する実装。public String interpolate(String message, Map<String,?> vars)
message - 対象のメッセージ。vars - メッセージ中の変数に対する値のマップ。public String interpolate(String message, Map<String,?> vars, boolean recursive)
message - 対象のメッセージ。vars - メッセージ中の変数に対する値のマップ。recursive - 変換したメッセージに対しても再帰的に処理するかどうか。public String interpolate(String message, Map<String,?> vars, boolean recursive, MessageResolver messageResolver)
MessageResolverを指定した場合、メッセージ中の変数をメッセージコードとして解決します。
message - 対象のメッセージ。vars - メッセージ中の変数に対する値のマップ。recursive - 変換したメッセージに対しても再帰的に処理するかどうか。messageResolver - メッセージを解決するクラス。nullの場合、指定しないと同じ意味になります。protected String parse(String message, Map<String,?> vars, boolean recursive, int currentRecursiveDepth, MessageResolver messageResolver)
message - 対象のメッセージ。vars - メッセージ中の変数に対する値のマップ。recursive - 変換したメッセージに対しても再帰的に処理するかどうか。currentRecursiveDepth - 現在の再帰処理回数。messageResolver - メッセージを解決するクラス。nullの場合、指定しないと同じ意味になります。protected String evaluateExpression(String expression, Map<String,?> values) throws ExpressionEvaluationException
expression - EL式values - EL式中の変数。ExpressionEvaluationExceptionpublic ExpressionLanguage getExpressionLanguage()
public void setExpressionLanguage(ExpressionLanguage expressionLanguage)
expressionLanguage - EL式の解析するクラスの実装。public int getMaxRecursiveDepth()
public void setMaxRecursiveDepth(int maxRecursiveDepth)
maxRecursiveDepth - 再帰的に処するときの最大回数。-1 のとき制限はありません。Copyright © 2025 mygreen. All rights reserved.