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式を解析する実装クラスを取得する。
|
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,
MessageResolver messageResolver)
メッセージをパースし、変数に値を差し込み、EL式を評価する。
|
void |
setExpressionLanguage(ExpressionLanguage expressionLanguage)
EL式を解析する実装クラスを設定する。
|
public MessageInterpolator()
式言語の処理実装として、JEXLのExpressionLanguageJEXLImpl
が設定されます。
さらに、関数としてCustomFunctions
が登録されており、接頭語 f:で呼び出し可能です。
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, MessageResolver messageResolver)
message
- 対象のメッセージ。vars
- メッセージ中の変数に対する値のマップ。messageResolver
- メッセージを解決するクラス。nullの場合、指定しないと同じ意味になります。protected String evaluateExpression(String expression, Map<String,?> values) throws ExpressionEvaluationException
expression
- EL式values
- EL式中の変数。ExpressionEvaluationException
public ExpressionLanguage getExpressionLanguage()
public void setExpressionLanguage(ExpressionLanguage expressionLanguage)
expressionLanguage
- EL式の解析するクラスの実装。Copyright © 2022 mygreen. All rights reserved.