ソフトウェア開発の「見える化」 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 などの質問と回答
© Copyright 2024 ExpyDoc