前回(Strutsメッセージのまとめ-(1))からの続きです。
- JSPでの通常のリソース文言(国際化対応など)…まとめ(1)
- Actionから通知される通常メッセージ…まとめ(2)←今回
- Actionから通知されるエラーメッセージ…まとめ(3)
- validateでのエラーメッセージ…まとめ(4)
- validatorでのエラーメッセージ…まとめ(5)
2.Actionから通知される通常メッセージ
HTML中で使われる固定文言とは違い、ユーザーへ伝える確認メッセージなどに使用します。
例えば、「登録を完了しました。」といったメッセージを表示するために使います。
ActionMessageと呼ばれる、1つのメッセージをあらわすオブジェクトと、
ActionMessagesという、複数のメッセージを保持する器を使用します。
ActionMessagesは、n個のActionMessageを格納しているコレクションのような存在です。
まずは、器を用意します。
ActionMessages messages = new ActionMessages();
この器にメッセージオブジェクトを追加します。
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("msg2.test1"));
最初のパラメータGLOBAL_MESSAGE
は、メッセージの所属するグループを示します。
GLOBAL_MESSAGEにする場合がほとんどだと思います。
次のパラメータでメッセージオブジェクトを生成しています。
“msg2.test1″という文字列がリソースのキーを示しています。記述してあるのはpropertiesファイルです。
msg2.test1=テストメッセージ1
これで1つのメッセージが、器に追加されました。
同じようにいくつかのメッセージが追加できます。
埋め込みパラメータつきのメッセージも作成できます。
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("msg2.paramed", new Date()));
イメージとしては図のようになります。
これだけでは器を作成しただけです。
この器をJSPで使えるようにするために、saveします。
saveMessages(request, messages);
これでAction側の処理はおしまいです。
そんなに難しくないです。
JSPでは
タグを使用します。
これは、iterateタグのように、器に入ったメッセージを1つ1つ取り出し、変数msgに格納して繰り返します。(ならばiterateタグを使ったほうが統一性があると思うが、そういう仕組みなので仕方ない)
繰り返しながら、変数msgの内容を、出力しているだけです。
タグの、message属性はtrueにしなければなりません。
これを設定し忘れると、saveMessageしたActionMessagesを使用せず、saveErrorsしたエラーメッセージ(次回説明)を出力しようとします。(これも分かりにくい)
true→通常メッセージの出力
false→エラーメッセージの出力
タグは、ActionMessagesをiterateするタグと言えます。
サンプルプログラムは、StrutsMsg-2.zipです。
次回は、Actionから通知されるエラーメッセージについてです。