機能SAMPLE.14 「EzServlet/複数のプロパティーファイルから指定されたキーに一致したメッセージを取得する方法」
今回は、複数のプロパティー・ファイルから、指定されたキーに一致したメッセージを取得する方法について説明します。
例えば、検証エラーで、下記のようなメッセージを出力する場合は良くあるかと思います。
年齢は入力必須です
上記メッセージを、画面固有の値(年齢)と共通メッセージの値(は、入力必須です)に分ける事も良くあるかと思います。
label.age=年齢 error.required={0}は入力必須です
この時、各キーを設定するプロパティーファイル(パス)も2つに分ける場合もありえます。
jp/co/xxx/hoge/hoge.properties
# HTMLの「年齢」項目
label.age=年齢
jp/co/xxx/common/error/common.properties
# 入力必須エラーメッセージ error.required={0}は入力必須です
この様な、メッセージを取得を取得する事は可能ですが、意外と面倒(煩雑)な作業です。
EzServletでは、複数の(パスに配置された)プロパティーファイルより、メッセージを取得するクラス:EzMessageを提供します。
では、上記のメッセージの取得方法を例に、EzMessageを利用方法を説明します。
// メッセージチェック結果を保持する属性の宣言と初期化を行ないます。 EzMessage message = new EzMessage("jp/co/xxx/hoge/hoge"); message.addErrorKey("error.required"); message.addSecondKey("label.age"); // メッセージを取得します。 String[] messages = message.getMessage();
上記、ソースの説明をします。
1.EzMessage message = new EzMessage("jp/co/xxx/hoge/hoge");
コンストラクターで受け渡されれるシグニチャには、一番最初に検索するプロパティーファイルのパスを指定
します。ここで、指定したプロパティーファイルに、各キーに対応するメッセージが存在しなかった場合は、
プロジェクト単位に設定したフォルダー配下にあるプロパティーよりメッセージを検索します。
プロジェクトのルートを設定し、全プロパティーファイルを対象になります。
2.message.addErrorKey("error.required");
メッセージの本文となるプロパティーキーをセットします。
addErrorKeyメソッドは、エラーメッセージの時に利用するメソッドです。
単なるメッセージの場合は、addMessageKey(key)メソッドを利用します。
このメソッドの使い分けにより、後からEzMessage#isErrorメソッドでエラーの有無の判別を可能にします。
3.message.addErrorKey("error.required");
オプショナルメッセージ({0}にセットする)のキーを設定します。
4.String[] messages = message.getMessage();
メッセージを取得します。
複数メッセージを想定して、String配列で返します。
最後に、EzMessageクラスのプロパティーに関する機能は、EzPropertyクラスで実装されています。
単純に、プロパティーから値を取得したい場合は、EzPropertyクラスを利用する事により取得可能です。
超かーんたーん(o^∀^)oネッ♪