skillup

技術ブログ

Java

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

投稿日:2015年7月12日 更新日:

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側

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

で出力できます。

参考リンク

JavaServer Faces ユーザーズガイド 3.7 メッセージの表示

-Java
-,

執筆者:


comment

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

関連記事

no image

動的な置換

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

no image

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

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

no image

glassfishへのデプロイ

いつもJavaEE環境のローカル開発ではNetbeansで動かしてますんで、デプロイに関してglassfishのことをほとんど知らなくても動かせます。 開発や本番環境化では当然そういうわけには行かない …

no image

スコープアノテーションとCDIについて

JavaEEで個人的に鬼門がCDIとスコープだと思っています。 ここが少しずつ分かりかけてきたんでメモします。 まずJavaEEでは変数の生存期間をアノテーションで定義します。 これがなかなか分かりに …

no image

JSPでのインクルード

JSPで社内アプリを作る機会があったので、メモ。 基本的なこともまだわかっていないんですが、とりあえずでてきたものから紹介してきます。 インクルードから。 ヘッダー、フッターみたいな別々に分けたりする …

アーカイブ