JSF メッセージ処理 概要

2009/06/20 20:01Update
TAGS: JSF | メッセージ | FacesMessage | h:message | h:messages

JSF メッセージの追加、表示方法について学びます。

JSF メッセージ関連のクラス


◇ javax.faces.application.FacesMessage
  メッセージを定義するクラス。ビューに定義されたコンポーネントと関連することができます。
◇ javax.faces.context.FacesContext
  コンテキストクラス。リクエスト毎に情報を保持することができます。
◇ java.util.Locale
◇ h:message,h:messagesタグ
  メッセージをJSPに表示するためのタグ。

JSF メッセージの追加


メッセージを画面に表示するには、JSFのコンテキストに追加する必要があります。
FacesContext#
void addMessage(java.lang.String clientId,
                                FacesMessage message)

※clientId:クライアントID(JSFタグに書かれたid属性)
※FacesMessageのコンストラクタ
+FacesMessage()
+FacesMessage(
    FacesMessage.Severity severity,
    java.lang.String summary,
    java.lang.String detail)
+FacesMessage(
    java.lang.String summary)
+FacesMessage(
    java.lang.String summary,
    java.lang.String detail)

@param severity:メッセージの種類、以下のような値があります。
◇ FacesMessage.SEVERITY_WARN
  WARNINGメッセージ
◇ FacesMessage.SEVERITY_FATAL
  致命的なメッセージ
◇ FacesMessage.SEVERITY_ERROR
  エラーメッセージ
◇ FacesMessage.SEVERITY_INFO
  INFOメッセージ

@param summary:メッセージ概要
@param detail:メッセージ詳細
例:
FacesMessage msg = new FacesMessage(
    FacesMessage.SEVERITY_ERROR,
        "パスワード不正です。",
        "パスワードが正しく入力されていません。");
FacesContext.getInstance().addMessage("userId", msg);


JSF メッセージの表示


メッセージを表示するには、h:messageタグやh:messagesタグを利用します。
例:
<h:messages globalOnly="false" styleClass="error" showSummary="true" showDetail="false" layout="table" />

※globalOnly:true/false。trueの場合、グローバルな(clientId未設定)メッセージをしか表示されません。
※styleClass:表示スタイル。HTML要素のclass属性に相当します。
※showSummary:true/false。メッセージ概要表示するかどうかの設定。
※showDetail:true/false。メッセージ詳細表示するかどうかの設定。
※layout:メッセージ表示の形式。tableの場合、tableを使って縦方向に表示するようになります。
<h:message for="userId" showSummary="true" showDetail="false"></h:message>

※for:関連するコンポーネントのclientIdを指定します。

これで、追加したメッセージが画面(JSP)で表示できるようになります。

参考資料


javax.faces.context.FacesContext API Javadoc
javax.faces.application.FacesMessage API Javadoc
h:messageタグ
h:messagesタグ

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation