Strutsメッセージのまとめ-(2)

前回(Strutsメッセージのまとめ-(1))からの続きです。

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()));

イメージとしては図のようになります。
msg2.png

これだけでは器を作成しただけです。
この器をJSPで使えるようにするために、saveします。
saveMessages(request, messages);

これでAction側の処理はおしまいです。
そんなに難しくないです。

JSPでは<html:messages>タグを使用します。


<ul>
<html:messages id="msg" message="true">
	<li><bean:write name="msg"/></li>
</html:messages>
</ul>

これは、iterateタグのように、器に入ったメッセージを1つ1つ取り出し、変数msgに格納して繰り返します。(ならばiterateタグを使ったほうが統一性があると思うが、そういう仕組みなので仕方ない)

繰り返しながら、変数msgの内容を、出力しているだけです。
<html:messages>タグの、message属性はtrueにしなければなりません。
これを設定し忘れると、saveMessageしたActionMessagesを使用せず、saveErrorsしたエラーメッセージ(次回説明)を出力しようとします。(これも分かりにくい)
true→通常メッセージの出力
false→エラーメッセージの出力

<html:messages>タグは、ActionMessagesをiterateするタグと言えます。
サンプルプログラムは、StrutsMsg-2.zipです。


次回は、Actionから通知されるエラーメッセージについてです。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)