JavaServer Faces(JSF) なら見える化?

ソフトウェア開発の「見える化」
JavaServer Faces(JSF) なら見える化?
2004 年 12 月 9 日
原田 洋子
目次

JavaServer Faces(JSF) 仕様を見よう!

JSF で何が見えるようになったか?

JSF の実装は?小道具は?

[ 演習 ]JSF で見えたか?
JavaServer Faces(JSF) 仕様を見よう! (1)

JSF は JSR-127 という仕様
Web アプリケーションフレームワークの仕様
Swing+Struts を API 化したようなもの
プレゼンテーション部分は JSP でなくてもよい
利便性を考慮⇒便利な JSP の JSF タグがある
ツール
プロダクト
仕様 /API
JavaServer Faces(JSF) 仕様を見よう! (2)

JSF はライフサイクルとコンポーネントツリー
リクエスト処理ライフサイクル
適当なページを
表示する
HTTP リクエストから
入力値を取り出す
適当なページに
遷移する
妥当な値かどうか
チェックする
値を使ってロジックを
実行する
一般的な Web アプリケーション
適当なページを表示
Restore View
Render Reponse
適当なページに遷移
HTTP リクエストから値を取得
Apply Request
Values
Invoke Application
ロジックを実行する
妥当な値かをチェック
Process Validations
Update Model
Values
MVC の M に値をセット
JSF のリクエスト処理ライフサイクル
JavaServer Faces(JSF) 仕様を見よう! (3)

JSF はライフサイクルとコンポーネントツリー
コンポーネントツリー
HTML(JSP) の
一部または全部
Restore View
フェーズ
UIViewRoot
UIForm
UICommand
UISelectMany
UICommand
UIOutput
UIInput
UISelectItem
JSF の UI コンポーネントツリー
JavaServer Faces(JSF) 仕様を見よう! (4)

ライフサイクルをまわすコンポーネント
イベント
UIViewRoot
おっけ。値を
リクエストから
取り出すよ。
.....
UIForm
.....
UISelectMany
UICommand
.....
UISelectItem
UIInput
おっけ。値を
リクエストから
取り出すよ。
Apply Request Values フェーズ
フェーズ
Apply Request Values
Process Validations
Update Model Values
Invoke Application
責任があるUIコンポーネント
UIInput とそのサブクラス
UIInput とそのサブクラス
UIInput とそのサブクラス
UICommandとそのサブクラス
実行されるメソッド
decode()
validate()
updateModel()
setActionListener()でセットされたリスナメソッド
JavaServer Faces(JSF) 仕様を見よう! (5)

小粒でぴりりの JavaBeans
Managed Bean
Method Binding, Value Binding
Invoke Application
Update Model
Values
参照
Restore View
Render Reponse
状態更新
JavaBeans
JavaBeans
JavaBeans
Faces Context
JavaServer Faces(JSF) 仕様を見よう! (6)

JSF 利用者の分類
Page Authors
HTML や JavaScript, JSP を書く人
JSF タグを使う
Application Developers
Web アプリケーションのサーバサイド部分を作る人
JavaBeans と、定義ファイル、ロジックを作る
Component Writers
独自の UI コンポーネントなどライブラリを作る人
Tool Providers
IDE など JSF ベースの開発ツールを作る人
JSF Implementors
JSF の実装を作る人
JSF で何が見えるようになったか?

サーバサイドの処理の流れが見えるようになった
リクエスト処理ライフサイクル
各フェーズの処理を受け持つコンポーネント

デバッグのポイントが明らかになった
チェック項目
取得できたパラメータは?
JavaBeans にセットされたのは?
ロジックの動作確認は?
フェーズ
UI コンポーネント
Apply Request
Values
UIInput
Update Model
Values
UIInput
Invoke Application
UICommand
JSF の実装は?小道具は? (1)

実装
参照実装 (RI)
http://javaserverfaces.dev.java.net/
MyFaces( 現在 Apache Incubator, smile)
http://www.myfaces.org/

小道具
コンポーネント - 多数
IDE–Sun Java Creator, WebSphere Studio Application Developer 他
フレームワーク -Nirvana,Spring,Struts-Faces Integration Library 他
JSF の実装は?小道具は? (2)

情報の入手先は
JSF Central http://www.jsfcentral.com/
Java Forums – JavaServer Faces Technology
http://forum.java.sun.com/forum.jspa?forumID=427
Yahoo! グループ :jsf-jp
http://groups.yahoo.co.jp/group/jsf-jp/
JSF がくる http://www.muimi.com/j/jsf/
[ 演習 ]JSF で見えたか?
別紙参照
Q&A
JSF などの質問と回答