skillup

技術ブログ

Java

JSFのメッセージのレンダリング

投稿日:

ManagedBeanとJSFでメッセージのやり取りをする場合、直接メッセージを変数として持たせるよりは、JSFの仕組みを通じてメッセージを出力させたほうが適切です。

エラーメッセージの出力

一番多いのは入力フォームなどのエラーメッセージを出力する方法です。

これは対象の変数にアノテーションを付与し、messageタグのlabel属性でinputと結び付けてあげれば出力が可能です。

ManagedBean側

JSF側

これで画面からcodeが1文字~20文字の文字列でない限りは自動的にエラーメッセージが吐かれ、そうでないときは何も出力されません。

任意の出力

難しいのはこのような変数とメッセージが1対1でないときです。

例えばデータベースへ何らかのデータが入力され、成功時と失敗時にメッセージを出力したいとします。

その場合、JSFのメソッドをManagedBeanの中から呼び出してあげればOKです。

clientIdとはコンポーネント上のIDです。

ここがJSFは通常のHTMLと違います。

単純にそのメッセージのIDではなく、inputの場合、formが親になりますので、親ID:子IDとなります。

下記のようなコードになります。

ManagedBean側

JSF側

ちなみに全てのメッセージをまとめて出力したいときは

で出力できます。

参考リンク

http://software.fujitsu.com/jp/manual/manualfiles/M050000/J2X11200/01/jsfgd03/jsfgd021.html

-Java
-,

執筆者:


comment

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

関連記事

no image

データベース文字コード対策他

Contents1 JDBC文字化け対策2 BigDecimal2.1 ソース2.2 参考リンク3 CreateQuery4 jsfのconvertNumber JDBC文字化け対策 データベースがu …

no image

列挙型Enumについて

列挙型のクラスであるEnumについてのメモです。 ちなみにEnumの読み方はイナムまたはイニュームだそうです。 Contents1 列挙型とは?1.1 基本の使い方1.2 key=value的な使い方 …

no image

JSFを使ったAjax

現在開発中のサブプロジェクトでJSFからAjaxを使う機会があったので紹介します。 仕様自体は非常にシンプルで下記の画面でプルダウンが変更になったときにDBを見に行って画面の値を更新するような仕様です …

no image

動的な置換

前回、置換に関する記事をまとめましたが動的な置換について勉強する機会があったのでまとめておきます。一般に置換表現というのはほとんどが静的なものかと思います。 例えば <intpu type=&# …

no image

BeanValidationの動的メッセージ出力について

JSF+ManagedBeanでは基本的にbeanValidationを使ってバリデーションを行い、エラーメッセージなどはプロパティファイルで管理するのが一般的です。 アノテーションなどを付与してあげ …