JSFとは何か - 稚内北星学園大学

2006年度 東京サテライト校
エンタープライズ・アプリケーション II
稚内北星学園大学
情報メディア学部
助教授 安藤 友晴
1
本講義の目標

JSFを使って、「ラクに」Webアプリケー
ションを作ろう!
2
本講義のスケジュール

第1日 (6/18)






JSF概説
Ant
MVCモデル2とJSF
JSPの作成
画面遷移

第3日 (7/23)



コンバータ
バリデータ
さまざまなUIコンポーネン
ト
第2日 (7/9)



Value Binding
Method Binding
Component Binding
3
本講義の単位の認定について

レポート課題を提示します。



レポートを評価して単位を認定
すべてのレポートの提出が必須
サマースクール「JSFとAjaxコース」に参加の方は、課題
の進捗状況を判断のうえ単位の発行が可能になります
4
JSF概説
エンタープライズアプリケーション II
第1回
2006年6月18日
5
ここでの講義内容




Java EE (J2EE)
JSFとは何か?
guessNumberサンプルアプリケーション
JSFの情報源
6
Java EE (J2EE)
7
J2EEの基本モデル

J2EEは「データベース」を使った「Webアプ
リケーション」の作成を念頭に置いている
技術 (3層モデル)
8
J2EEサーバとコンテナ


3層モデルの中央に位置
大きく分けて、次の2つの機能を持つ



Webコンテナ
EJBコンテナ
2つのコンテナでは、それぞれJavaのプロ
グラムが動く
9
Servlet と JSP


J2EEでは動的なページを作成するためServletとJSPを使う。
Servlet



JSP





HttpServlet を継承する Javaプログラム。
HTML を埋め込める (あまり使わないけど)
ほとんどHTML
Javaプログラムを埋め込める (あまり使わないけど)
「Webコンテナ」の内部ではServletに変換される
どちらも「Webコンテナ」で動く。
普通は Servlet と JSP を組み合わせて使う。
10
MVCモデル2とフレームワーク


ServletやJSPは、「MVCモデル2」という技
術で組み合わせる。
MVCモデル2に基づく「フレームワーク」を
使うと、Webアプリケーションの作成が楽
になる



JSF
Struts
Tapestry など
11
Javaからデータベースを利用

JDBC


JavaでSQLをラッピングしたもの
O/R Mapping



「ひとつのJavaオブジェクト」が「リレーショナルデータベースの
テーブルの1行分のデータ」と対応
Entity Bean / Hibernate / Cayenne など
2006年に Java Persistence API がリリース。O/R Mapping の標
準APIになっていく
12
Java EE 5 の登場

2006年5月に正式リリース



「J2EE 1.5」となるべきものを「Java EE 5」に改
称
http://java.sun.com/javaee/
リファレンスインプリメンテーション = RI =
参照実装


Project GlassFish
https://glassfish.dev.java.net/
13
Java EE 5 の技術的な特徴 (1)

EoD (= Ease of Development = 開発の
容易性)の導入

J2SE 5.0 に加わった新しい言語仕様の積極
的な利用



特にAnnotation
Dependency Injection (DI) の考え方
POJO (Plain Old Java Object) / POJI (Plain
Old Java Interface) の利用
14
Java EE 5 の技術的な特徴 (2)

WebアプリケーションではJSFの利用が基
本


ビジネスロジックとO/R Mapping には EJB
3.0 の利用が基本


「改良されたStruts」としてのJSF
これまでのEJBが劇的にシンプルに
Java EE 5 = JSF + EJB 3.0
15
JSFとは何か?
16
フレームワーク (1)


Webアプリケーションのような、パターン化されたプログラ
ムを作成するときに使われるもの。
例えば、どんなWebアプリケーションでも、次のような処
理をする必要がある。
 フォームで入力されたパラメータの値を取得する。
 ボタンが押されたら次の画面に移る。
17
フレームワーク (2)



フレームワークでは、こうしたパターン化された機
能があらかじめ用意されている。
プログラム開発者は、個々のプログラムに固有
の機能を追加すればよい。
決まったパターンをわざわざ書く必要がないので、
プログラム開発が楽になる。
18
JSF (JavaServer Faces)
とは何か


Webアプリケーションのユーザインタフェー
スを作成するためのフレームワーク
ツールでのWebアプリケーションの作成を
強く意識している技術

ボタンやテキストボックスを Drag & Drop して
Webアプリケーションを開発していく。
19
JSFは誰が作っているか (1)

Java Community Process (JCP)


JSF は、 JCP の中の “JSR 127” で仕様を策定







Javaの標準技術を定める手続き
JSF は、Javaの標準フレームワーク
JSF 1.2 からは “JSR 252“
2004年3月に version 1.0 が正式リリース
2004年5月に version 1.1
2004年9月に version 1.1.01
2006年5月に version 1.2
2006年5月ににリリースされた “Java EE 5” に含まれる
20
JSFは誰が作っているか (2)

JSF 1.1 の仕様策定の中心となっているの
は、Craig McClanahan


MVCモデル2 を用いたフレームワークである
Struts を作った人
Struts と重複する機能が多い
21
JSFで何ができるか

MVCモデル2 による Webアプリケーション
のフレームワークを用意



これまでStruts などが対応してきた部分
JSF は View と Controller を担当
「UIコンポーネント」でWebページを構成



ラベル、テキスト入力フィールド、ボタンなど
AWT/Swing で画面を構成するようなイメージ
イベント処理の概念
22
guessNumber
サンプルアプリケーション
23
どんなサンプルか?



Duke くんが思っている数を当てるゲーム。
0 ~ 10 までの数を入力する
当たりかはずれか表示
24
実行
画面
25
実行方法



Tomcat を起動する
アプリケーション・マネージャで、JSF
1.1.01 のアーカイブにある samples/jsfguessNumber.warを配備
http://localhost:8080/jsf-guessNumber/
にアクセスする。
26
UIコンポーネントによる
画面構成

Webの画面はUIコ
ンポーネントから構
成される。
27
画面遷移

ボタンをク
リックしたら、
画面が遷移
する。
28
間違ったデータが入力
されたら?

数字を入れるべきと
ころを “wakhok” の
ような文字列を入力
したら、エラーメッ
セージが表示される。
29
JSFの情報源
30
情報源

本家


java.net


http://java.sun.com/javaee/javaserverfaces/
https://javaserverfaces.dev.java.net/
Apache MyFaces


http://myfaces.apache.org/
JSF仕様のApache Software License による実装 +
豊富なUIコンポーネント
31