JavaServer Faces ユーザーズガイド
目次 前ページ次ページ

第2章 JavaServer Facesの機能

2.4 バリューバインディング式とメソッドバインディング式

ここでは、バリューバインディング式とメソッドバインディング式について説明します。
バリューバインディング式は、画面とmanaged beanのプロパティを結びつけるための表記方法です。メソッドバインディング式は画面とmanaged beanのメソッドを結びつけるための表記方法です。どちらも、主にタグのアトリビュートで利用します。
バリューバインディング式とメソッドバインディング式は "#{mybean.myprop}"のように"#{"で開始し、"}"で終了していなければなりません。

■バリューバインディング式

"#{ }"の内部に、managed beanの識別名と、プロパティ名を"."(ドット)で結びつけて記述します。
このとき、Beanが入れ子になっている場合は、その数だけ"."で繋げることができます。
JSPの例を次に示します。

<f:view>
  <!-- mybeanという名前で登録されたmanaged beanのmypropプロパティを画面に表示する場合 -->
  <h:outputText value="#{mybean.myprop}" />

  <!-- mybean1、mybean2、mybean3が入れ子になっていて、mybean3のmypropプロパティを画面に表示する場合 -->
  <h:outputText value="#{mybean1.mybean2.mybean3.myprop}" />
</f:view>

プロパティが配列、java.util.Listjava.util.Mapの場合は、"[]"を利用して参照します。

<f:view>
  <!-- myArrayプロパティが配列で、配列の0番目を画面に表示する場合 -->
  <h:outputText value="#{mybean.myArray[0]}" />

  <!-- myListプロパティがjava.util.List型で、リストの3番目を画面に表示する場合 -->
  <h:outputText value="#{mybean.myList[3]}" />

  <!-- myMapプロパティがjava.util.Map型で、"mykey"に対応する値を画面に表示する場合 -->
  <h:outputText value="#{mybean.myMap['mykey']}" />
</f:view>

■メソッドバインディング式

メソッドバインディング式は、"#{ }"の内部に、managed beanの識別名と、メソッド名を"."(ドット)で結びつけて記述します。
バリューバインディング式と同様に、Beanが入れ子になっている場合は、その数だけ"."で繋げることができます。
JSPの例を次に示します。

<f:view>
  <h:form>
    <!-- mybeanという名前で登録されたmanaged beanのvalidateメソッドで値の検証を行う場合 -->
    <h:inputText value="#{mybean.myprop}" validator="#{mybean.validate}" />
  </h:form>
</f:view>

■予約済み変数

バリューバインディング式、メソッドバインディング式では次の予約済み変数を利用することができます。

変数名説明
applicationScope java.util.Map すべてのアプリケーションスコープの変数の集合です。
cookie java.util.Map リクエスト内のクッキーの集合です。Mapのキーはクッキーの名前で、値はjavax.servlet.http.Cookieのインスタンスです。
facesContext javax.faces.context.FacesContext javax.faces.context.FacesContextクラスのインスタンスです。
header java.util.Map すべてのリクエストヘッダの集合です。Map内の個々の値はjava.lang.String型です。
headerValues java.util.Map すべてのリクエストヘッダの集合です。個々の値はjava.lang.String型の配列です。
initParam java.util.Map アプリケーションの初期化パラメタの集合です。
param java.util.Map リクエストパラメタの集合です。各キーに対応するリクエストパラメタの先頭の値が格納されています。
paramValues java.util.Map リクエストパラメタの集合です。各キーに対応するリクエストパラメタはjava.lang.Stringの配列で格納されています。
requestScope java.util.Map すべてのリクエストスコープの変数の集合です。
sessionScope java.util.Map すべてのセションスコープの変数の集合です。
view javax.faces.component.UIViewRoot 現在表示している画面に対応するjavax.faces.component.UIViewRootクラスのインスタンスです。

予約済み変数を利用する例を次に示します。

<f:view>
  <!-- "paramKey"というキーに対応するリクエストパラメタを画面に表示する場合 -->
  <h:outputText value="#{param['paramKey']}" />
</f:view>

目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2005