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

JPAまとめ

JPAわけわかんねーと思い、触りはじめてから3か月ぐらいたちます。 いまだに細かい部分はよくわかっていないことは多いのですが、全体像というか何となくどういうものかはわかり始めてきたいのでまとめたいと思 …

no image

クラスパスの通し方

今回はNetbeansでなく、IDEを使わずにJavaを使う場合の記事です。 Javaで開発している人の99%はIDEで開発をしていると思うのですが、サーバー上で一時的テストをしないといけないような場 …

no image

String,Integer,Booleanの相互変換

データベースにはbooleanでデータが入っているのに画面では0か1の数字でないと表示ができないときなどがあると思います。 そんな時に文字列と論理値、あるいは文字列と数値、数値と論理値の変換などをする …

no image

JavaEEのトランザクションに関して

最近あまり触れていないJavaEEのトランザクションについて。 JavaEEの場合、EJB環境では@Statelessを付けることによりトランザクション管理を行うことができます。 [crayon-5a …

no image

Javaでのスクレイピング

スクレイピングというと一般的にはRubyが一番有名なようですが、もちろんスクレイピング自体はどの言語でも行うことができます。 Contents1 スクレイピングの手法1.1 正規表現1.2 HTMLパ …