Value Binding
エンタープライズアプリケーション II
第6回 / 2006年7月9日
1
ここでの内容
JSFでのパラメータの受け渡し方法につい
て学ぶ。
2
やりたいこと
画面1のテキス
トフィールドに
入力したパラ
メータを、画面
2で表示する。
3
JavaBeansとは何か
4
JavaBeansとは何か
Javaによるコンポーネント技法
いくつかのルールのもとに作られた Javaの
クラス
だから、取り扱いやすい
JavaBeansの例
ボタンやテキストフィールドなどのUIコン
ポーネント
本のデータと関連する処理
5
JavaBeans のルール
直列化
引数無しのコンストラクタ
プロパティ
6
JavaBeansのルール (1)
直列化
必要に応じて、インスタンスをバイト列に変換できるよう
にする。
インスタンスをファイルに保存する
インスタンスをネットワークで転送する
java.io.Serializable インタフェースを実装する。
このインタフェースでは、メソッドは用意されていない。
public class HogeBean implements Serializable {
……
……
}
7
JavaBeansのルール (2)
引数無しのコンストラクタ
引数無しのコンストラクタ (= デフォルト・コンストラクタ)
を用意する。
public class HogeBean implements Serializable {
public HogeBean() {
……
}
……
}
8
JavaBeansのルール (3)
プロパティ
Bean の持つ「属性」のこと
ボタンをあらわす Bean であれば、次のも
のがプロパティ
Windows の「プロパティ」と同じこと
ボタンの色 / ボタンに描かれる文字 など
本をあらわす Bean であれば、次のものが
プロパティ
タイトル / 著者 / 出版社 など
9
「本」を表す Bean
public class Book implements Serializable {
private String t;
public Book() { …… }
public String getTitle() { return t;}
public void setTitle(String t) {
this.t = t;
}
}
10
メソッドのネーミングルールと
プロパティ
title というプロパティがある
setTitle() や getTitle() というメソッドがあ
る
setTitle() や getTitle() というメソッドがある。
title というフィールドがあることを意味しない。
title というプロパティがある。
メソッドがあるから、プロパティが存在する
11
setter と getter
setter --> setTitle()
setTitle() というスタイルのメソッド
プロパティに値をセットできる
getter --> getTitle()
getTitle() というスタイルのメソッド
プロパティの値を得ることができる
どちらかが存在するだけでプロパティになりうる
12
setter と getter とプロパティ
setter
getter
プロパティ
setTitle()
getTitle()
title
setter と getter では、先頭が大文字にな
る
プロパティ名では、先頭が小文字
13
プロパティを導入することの利点
プロパティは、オブジェクトの属性にアクセ
スするための方法を仕様化したもの
仕様化した結果、getter や setter 以外の
手段でもプロパティにアクセスできるように
なる
ツールから
「式言語」と呼ばれるものから
14
Managed Bean の作成
15
Managed Bean とパラメータ
HTMLのフォームから入力されたパラメータ
を、Managed Bean (または Backing
Bean) と呼ばれる JavaBeans に格納する。
このとき、Managed Bean のプロパティで
パラメータの情報を管理する。
16
Managed Bean の例 (1)
public class ParameterBean {
private String word;
……
public String getWord() { return word;}
public void setWord(String w) { word = w; }
……
}
17
Managed Bean の例 (2)
この Bean には、word というプロパティが
ある。
この word プロパティで、テキストフィール
ドに入力された情報を管理する。
18
faces-config.xml の設定
19
概要
faces-config.xml
に、この
Managed Bean
の情報を記述し
ておく。
<faces-config>
<managed-bean>
......
</managed-bean>
......
<faces-config>
20
managed-bean 要素
<managed-bean>
<managed-bean-name>
ParameterBean
</managed-bean-name>
<managed-bean-class>
ParameterBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
21
managed-bean-class 要素
<managed-bean-class>
ParameterBean
</managed-bean-class>
Managed Bean のクラス名を指定する
22
managed-bean-name 要素
<managed-bean-name>
ParameterBean
</managed-bean-name>
この Bean に “ParameterBean” という名
前をつける。
23
managed-bean-scope 要素 (1)
<managed-bean-scope>
session
</managed-bean-scope>
Bean の生存期間を表す。
24
managed-bean-scope 要素 (2)
どのような値があるか
application
session
セッションが有効なあいだ
request
そのWebアプリケーションが起動してから終了するまで
(HTTPの)要求から応答まで
none
スコープには属さない
25
managed-bean-scope 要素 (3)
Managed Bean は、managed-beanscope 要素の設定によって自動的にイン
スタンスが生成される。
JSP の useBean タグを使う必要はない。
26
JSP と Value Binding
27
page1.jsp
<f:view>
<h:form id="searchForm">
<h:inputText id="word"
value="#{ParameterBean.word}" />
<h:commandButton id="button1"
action="success" value="Go!" />
</h:form>
</f:view>
28
#{ParameterBean.word}
テキストフィールドに入力された文字列は、
ParameterBean の word プロパティに格
納される。
こうしたしくみのことを “Value Binding” と
言う。
こうした #{……} という書式を “Value
Binding 式” と言う。
29
Value Binding 式
#{ Beanの名前 . プロパティ名 }
“Beanの名前” は、 先の managed-beanname 要素の内容部分
“プロパティ名” は、入力フィールドのパラ
メータ情報を格納する Bean のプロパティ
名
30
page2.jsp
<f:view>
<h:form id="searchForm">
<h:outputText id="word"
value="#{ParameterBean.word}"
/>
</h:form>
</f:view>
31
h:outputText 要素 (1)
<h:outputText id="word"
value="#{ParameterBean.word}" />
value属性の値を表示するUIコンポーネン
ト
id 属性がある。
32
h:outputText 要素 (2)
<h:outputText id="word"
value="#{ParameterBean.word}" />
Value Binding によって、ParameterBean
の word プロパティの値が出力される。
33
まとめ (1)
page1.jsp の
h:inputText に入力
された文字は
Value Binding 式に
よって
ParameterBean の
word プロパティに
格納される
34
まとめ (2)
ParameterBean は、
faces-config.xml の
設定により session
スコープを持つ。
page1.jsp と
page2.jsp で
ParameterBean を
共有できる。
35
まとめ (3)
同じく facesconfig.xml の設定
により、page1.jsp
のボタンを押すと
page2.jsp に遷移す
る。
36
まとめ (4)
page2.jsp では、
h:outputText タグ
の Value Binding
式によって、
ParameterBean の
word プロパティの
値が出力される。
37
まとめ (5)
こうして、page1.jsp
で入力された文字
が page2.jsp で表
示されるようになる。
38
© Copyright 2026 ExpyDoc