2003年度 データベース論

パラメータの受け渡し
J2EE II 第9回
2004年11月11日
1
ここでの内容

JSFでのパラメータの受け渡し方法につい
て学ぶ。
2
やりたいこと

画面1のテキス
トフィールドに
入力したパラ
メータを、画面
2で表示する。
3
JavaBeansとプロパティ
4
JavaBeans とは何か




Javaによるコンポーネント技法
いくつかのルールのもとに作られた Java
のクラス
だから、取り扱いやすい
JavaBeans の例



GUI
表計算
本のデータと関連する処理
5
JavaBeans のルール



永続化
引数無しのコンストラクタ
プロパティ
6
プロパティとは


Bean の持つ「属性」のこと
本をあらわす Bean であれば、次のものが
プロパティ




タイトル
著者
出版社
など
7
「本」を表す Bean
public class Book implements Serializable {
private String title;
public Book() { …..}
public String getTitle() { return title;}
public void setTitle(String t) { title = t; }
……
}
8
メソッドのネーミングルールと
プロパティ

title というプロパティがある



setTitle() や getTitle() というメソッドがあ
る


setTitle() や getTitle() というメソッドがある。
title というフィールドがあることを意味しない。
title というプロパティがある。
メソッドがあるから、プロパティが存在する
9
setter と getter

setter



getter



setTitle() というスタイルのメソッド
プロパティに値をセットする
getTitle() というスタイルのメソッド
プロパティの値を得る
どちらかが存在するだけでプロパティにな
りうる
10
“title” というプロパティ

setter  setTitle()


getter  getTitle()


title というプロパティに値が設定できることを
示す
title というプロパティの値を取得できることを
示す
プロパティは “title”


setter と getter では、先頭が大文字になる
プロパティ名では、先頭が小文字
11
Managed Bean の作成
12
Managed Bean とパラメータ


HTMLのフォームから入力されたパラメータ
を、Managed Bean (または Backing
Bean) と呼ばれる JavaBeans に格納する。
このとき、Managed Bean のプロパティで
パラメータの情報を管理する。
13
Managed Bean の例 (1)
public class ParameterBean {
private String word;
……
public String getWord() { return word;}
public void setWord(String w) { word = w; }
……
}
14
Managed Bean の例 (2)


この Bean には、word というプロパティが
ある。
この word プロパティで、テキストフィール
ドに入力された情報を管理する。
15
faces-config.xml の設定
16
概要

faces-config.xml
に、この
Managed Bean
の情報を記述し
ておく。
<faces-config>
<managed-bean>
......
</managed-bean>
......
<faces-config>
17
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>
18
managed-bean-class 要素
<managed-bean-class>
ParameterBean
</managed-bean-class>

Managed Bean のクラス名を指定する
19
managed-bean-name 要素
<managed-bean-name>
ParameterBean
</managed-bean-name>

この Bean に “ParameterBean” という名
前をつける。
20
managed-bean-scope 要素 (1)
<managed-bean-scope>
session
</managed-bean-scope>

Bean の生存期間を表す。
21
managed-bean-scope 要素 (2)
どのような値があるか

application


session


セッションが有効なあいだ
request


そのWebアプリケーションが起動してから終了するまで
(HTTPの)要求から応答まで
none

スコープには属さない
22
managed-bean-scope 要素 (3)


Managed Bean は、managed-beanscope 要素の設定によって自動的にイン
スタンスが生成される。
JSP の useBean タグを使う必要はない。
23
JSP と Value Binding
24
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>
25
#{ParameterBean.word}



テキストフィールドに入力された文字列は、
ParameterBean の word プロパティに格
納される。
こうしたしくみのことを “Value Binding” と
言う。
こうした #{……} という書式を “Value
Binding 式” と言う。
26
Value Binding 式
#{ Beanの名前 . プロパティ名 }


“Beanの名前” は、 先の managed-beanname 要素の内容部分
“プロパティ名” は、入力フィールドのパラ
メータ情報を格納する Bean のプロパティ
名
27
page2.jsp
<f:view>
<h:form id="searchForm">
<h:outputText id="word"
value="#{ParameterBean.word}"
/>
</h:form>
</f:view>
28
h:outputText 要素 (1)
<h:outputText id="word"
value="#{ParameterBean.word}" />


value属性の値を表示するUIコンポーネン
ト
id 属性がある。
29
h:outputText 要素 (2)
<h:outputText id="word"
value="#{ParameterBean.word}" />

Value Binding によって、ParameterBean
の word プロパティの値が出力される。
30