Upload
oracle-fusion-middleware
View
2.944
Download
2
Embed Size (px)
DESCRIPTION
JSF2.0は、Webアプリケーションのフレームワークで、Java EE 6に含まれる標準技術です。本セッションでは、初めにJSF2.0を利用するメリットをご紹介し、JSF2.0の基礎の基礎からRIA(リッチインターネットアプリケーション)の開発までを具体的に解説します。 日本オラクル株式会社 Fusion Middleware事業統括本部 ソリューション本部 松林 晶
Citation preview
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 1
WebLogic Server 勉強会 JavaServer Faces 2.0入門
2012年11月22日
日本オラクル株式会社
Fusion Middleware事業統括本部 松林晶
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 2
Program Agenda
JSFとは
– JSFとは
– JSFのメリット
JSFの技術概要
RIAなJSFの作成(Ajaxサポート)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 3
JSFとは
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 4
JSFとは
JavaServer Facesの略
JSFは、Java EE標準のWebアプリケーションフレームワーク
特徴
– リクエスト駆動ではなく、コンポネントベース
– JSP、XHTML、XULを画面コンポネントとして使用可能
Oracle WebLogic Server 12c(12.1.1)
– JSF 2.1, 2.0, 1.2, 1.1をサポート(http://docs.oracle.com/cd/E28613_01/web.1211/b65935/toc.htm#BGGBIJBI)
JSF概要
バージョン リリース コメント
1.2 2006年5月 Java EEに正式に採用(Java EE 5)
2.0 2009年6月 Java EE6
2.1 2010年10月 2011年9月現在の最新バージョン
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 5
JSFとは JSFのメリット
安心のJava EE標準仕様 アノテーションベースのかん
たん開発(EoD)
Ajaxタグによる
RIA開発
コンポネント駆動の
プログラミング
JSF
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 6
JSFとは
安心のJava EE 標準仕様
– 全てのAPサーバが実装及びサポートしているため安心して使用可能
アノテーションベースのかんたん開発
– XMLの記述がオプション化(XML地獄からの脱却)
– @Managed をPOJOに付与するだけでマネージドBean作成 等
AjaxタグによるRIA開発
– <f:ajax>タグによって、RIAを従来よりも簡単に開発可能
JSFのメリット①
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 7
JSFとは
コンポネント駆動
– シンプルなプログラミング
ステートレスなHTTPのやり取りを意識することなく
スタンドアロンのアプリケーションのように作成可能
JSFのメリット②
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 8
JSFとは
アノテーションによるかんたん開発化
JSPに代わりFaceletsを使用可能(XHTMLの利用/テンプレート)
– 画面の部品の共通化
GETリクエストの使用(POSTだけでなく)
– ページをお気に入りに登録可能
Ajaxサポート
JSF2.0新機能概要
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 9
JSF技術概要
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 10
XUL
JSF技術概要 JSFの構成要素
FacesServlet
JSP コンバータ
バリデータ
マネージドBean
HTTPリクエスト
HTTPレスポンス
faces-config.xml (オプション)
XHTML
コンポネント
コンポネント
レンダラ
各コンポネントは、レンダラを呼び出してレスポンスを生成する。デフォルトのレンダラはHTMLを生成する(例えば、<h:button/>
⇒<input type=”button”>)
コンポネントツリーに展開された値のチェックを行う。
チェックエラーの場合は、レスポンスのレンダリングフェーズに進む
オブジェクトを表示用の文字列に変換する
各ページ間の画面遷移、EJB呼出し、出入力値の管理
※ XULとは、XML User Interface Languageの略で、“ずーる”と読む。
HTTPのリクエストから適切なページへ遷移させる
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 11
JSF技術概要 シンプルなJSFの作成
<?xml version="1.0" encoding="windows-31j" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j" /> <title>SimplePage</title> </head> <body> <f:view> <h:form> <h:commandButton value="Display" action="#{simplePageBean.actionDisplay}" /> <h:outputText value="#{simplePageBean.display}" /> </h:form> </f:view> </body></html>
package managed; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.faces.bean.ManagedBean; @ManagedBean public class SimplePageBean { public void actionDisplay(){ display = new SimpleDateFormat("HH:mm:SS"). format(Calendar.getInstance().getTime()); } private String display = "まだボタンが押されていない"; public String getDisplay() { return display; } }
simple.xhtml SimplePageBean.java
実行イメージ
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 12
JSF技術概要 JSFのライフサイクル概要
④モデル値
の更新 イベントの処理
⑤アプリケーションの呼び出し
イベントの処理 ⑥レスポンスの
レンダリング
①ビューの復元 ②入力値の適用 イベントの処理 イベントの処理 ③検証の処理
ターゲットビューを復元し、ユーザの入力を適用します
クライアントからサーバに対するリクエストの値(フォーム、ヘッダー等)をページの様々なコンポネントに適用します。
モデル(マネージドBean)の更新はまだ行わない
コンポネントツリーを操作しながら、型変換及び、値が有効か否か検証する
検証OK
検証NG
コンポネントに設定された値でマネージドBeanを更新する
ビジネスロジックを呼び出す
リクエスト
レスポンス レスポン
スを作成
する
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 13
JSF技術概要 JSFのライフサイクル概要
④モデル値
の更新 イベントの処理
⑤アプリケーションの呼び出し
イベントの処理 ⑥レスポンスの
レンダリング
①ビューの復元 ②入力値の適用 イベントの処理 イベントの処理 ③検証の処理
検証OK
検証NG
root
input
output
root
input
output
“AAA”
ユーザの入力値
root
input
output
“AAA”
検証(5文字以内か)
root
input
output
マネージドBean
private String name;
public void execute()
“AAA”
root
input
output
マネージドBean
private String name;
public void execute()
“AAA”
実行
リクエスト
レスポンス
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 14
JSF技術概要 コンポネント
GO
ID NAME BD
1 Akira 10/28
2 Shun 8/13
INPUT :
<h:commandButton> <h:inputText> <h:outputText>
<h:dataTable>
<h:column>
Next Page
<h:commandLink>
MAN
WOMAN
*** <h:inputSecret>
CHECK
ID
NAME
BD
NAME
<h:selectBooleanCheckbox>
<h:selectOneListbox>
<h:selectOneRadio>
HTMLで使用可能な画面コンポネントはほぼ使用可能
– 従来のHTMLで記述することも可能 ⇒ デザイナとプログラマの分離
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 15
JSF技術概要 Facelets のテンプレート
HOME
NEWS
PRODUCT
LINK
COMPANY
<ui:insert name=“header”>
<ui:insert name=“footer”>
Welcome !
<ui:define name=“content”>
<ui:define name=“content”>
<ui:insert name=“content”>
News !
2011. 10. 28 03:13:21 Update
XXXX xxxxx
テンプレートの定義
<ui:insert name=“menu”>
画面の共通部品化
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 16
RIAなJSFの作成 (Ajaxサポート)
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 17
Ajaxサポート
JavaScriptの知識がなくても、<f:ajax>タグで
リッチなアプリケーションを作成可能
例
サンプル例
<h:outputText id="keystr" value="#{indexBean.keyword}"/><br/>
<h:inputText id="keyword" value="#{indexBean.keyword}">
<f:ajax event="keyup" render="keystr"/>
</h:inputText>
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 18
Ajaxサポート
タグの属性
サンプル例
<f:ajax event="keyup" render="keystr"/>
属性 意味
event 何をきっかけとして非同期でリクエストを送出するか
“keyup”の場合は、キーボードをタイプしたタイミング
render Ajaxの呼び出し後にレンダリング(再描画)する画面の範囲
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 19
まとめ
JSFは標準のWebアプリケーションフレームワーク
アノテーションベースのかんたん開発
Ajaxをサポートし簡単にRIA作成
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 20
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 21