機能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ネッ♪