Enviar pesquisa
Carregar
sc2009white_Teeda
•
2 gostaram
•
1,243 visualizações
Masaaki Yonebayashi
Seguir
Teeda -JSFからのTeeda-
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 84
Baixar agora
Baixar para ler offline
Recomendados
Teeda
Teeda
Masaaki Yonebayashi
第4回「気候変動対策の次期枠組みに向けて」資料 2/3 (井上氏)
第4回「気候変動対策の次期枠組みに向けて」資料 2/3 (井上氏)
IDDP UK
PMT-001-中鋼公司生產管理實務經驗分享
PMT-001-中鋼公司生產管理實務經驗分享
handbook
日本BPO报告书
日本BPO报告书
su yang
Introducing Intalio|BOP (Japanese)
Introducing Intalio|BOP (Japanese)
Tomoaki Sawada
John deere a2 m gator service repair manual (tm114028)
John deere a2 m gator service repair manual (tm114028)
fujsejfkskemm
オープンソースからの高位合成によるORB-SLAM FPGA実装
オープンソースからの高位合成によるORB-SLAM FPGA実装
直久 住川
Hr 040 機械領域策略規劃
Hr 040 機械領域策略規劃
handbook
Recomendados
Teeda
Teeda
Masaaki Yonebayashi
第4回「気候変動対策の次期枠組みに向けて」資料 2/3 (井上氏)
第4回「気候変動対策の次期枠組みに向けて」資料 2/3 (井上氏)
IDDP UK
PMT-001-中鋼公司生產管理實務經驗分享
PMT-001-中鋼公司生產管理實務經驗分享
handbook
日本BPO报告书
日本BPO报告书
su yang
Introducing Intalio|BOP (Japanese)
Introducing Intalio|BOP (Japanese)
Tomoaki Sawada
John deere a2 m gator service repair manual (tm114028)
John deere a2 m gator service repair manual (tm114028)
fujsejfkskemm
オープンソースからの高位合成によるORB-SLAM FPGA実装
オープンソースからの高位合成によるORB-SLAM FPGA実装
直久 住川
Hr 040 機械領域策略規劃
Hr 040 機械領域策略規劃
handbook
Sole mate size_chart
Sole mate size_chart
solemate
Samt22
Samt22
Sarkash Tehri
Decade Ugawa
Decade Ugawa
ugawa taro
CEO-035-拍賣王的網路世界
CEO-035-拍賣王的網路世界
handbook
【13-D-1】 ERP5に見るストレージ技術
【13-D-1】 ERP5に見るストレージ技術
devsumi2009
QM-086-ITD-06-製程能力分析
QM-086-ITD-06-製程能力分析
handbook
商業登記電子証明書のすゝめ
商業登記電子証明書のすゝめ
Naoto Miyachi
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
devsumi2009
GIGAPOD OFFICEHARD
GIGAPOD OFFICEHARD
tripodworks
ATND - Recruit Media Technology Labs (Internet Week 2008)
ATND - Recruit Media Technology Labs (Internet Week 2008)
Yusuke Kawasaki
第6回 「アフリカの天然資源と開発」資料1/1
第6回 「アフリカの天然資源と開発」資料1/1
IDDP UK
20090312
20090312
Michiro KAwasaki
胸腔胃-气道瘘:经鼻空肠营养管和胃减压管置入治疗--申
胸腔胃-气道瘘:经鼻空肠营养管和胃减压管置入治疗--申
baiyunguofeng
IDDP第2回勉強会説明資料081128
IDDP第2回勉強会説明資料081128
blackbirdsinging4
eBook Tutoriais Dreamweaver CS6
eBook Tutoriais Dreamweaver CS6
autonomo
Biweekly Financial Commentary 06 07 03
Biweekly Financial Commentary 06 07 03
Ant Wong
090525-homology search(ensembl, local)
090525-homology search(ensembl, local)
ocha_kaneko
Keni20 Sample
Keni20 Sample
web marketing
090601-dotplot
090601-dotplot
ocha_kaneko
Go guide for Java programmer
Go guide for Java programmer
Masaaki Yonebayashi
HHVM Hack
HHVM Hack
Masaaki Yonebayashi
Android T2 on cloud
Android T2 on cloud
Masaaki Yonebayashi
Mais conteúdo relacionado
Mais procurados
Sole mate size_chart
Sole mate size_chart
solemate
Samt22
Samt22
Sarkash Tehri
Decade Ugawa
Decade Ugawa
ugawa taro
CEO-035-拍賣王的網路世界
CEO-035-拍賣王的網路世界
handbook
【13-D-1】 ERP5に見るストレージ技術
【13-D-1】 ERP5に見るストレージ技術
devsumi2009
QM-086-ITD-06-製程能力分析
QM-086-ITD-06-製程能力分析
handbook
商業登記電子証明書のすゝめ
商業登記電子証明書のすゝめ
Naoto Miyachi
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
devsumi2009
GIGAPOD OFFICEHARD
GIGAPOD OFFICEHARD
tripodworks
ATND - Recruit Media Technology Labs (Internet Week 2008)
ATND - Recruit Media Technology Labs (Internet Week 2008)
Yusuke Kawasaki
第6回 「アフリカの天然資源と開発」資料1/1
第6回 「アフリカの天然資源と開発」資料1/1
IDDP UK
20090312
20090312
Michiro KAwasaki
胸腔胃-气道瘘:经鼻空肠营养管和胃减压管置入治疗--申
胸腔胃-气道瘘:经鼻空肠营养管和胃减压管置入治疗--申
baiyunguofeng
IDDP第2回勉強会説明資料081128
IDDP第2回勉強会説明資料081128
blackbirdsinging4
eBook Tutoriais Dreamweaver CS6
eBook Tutoriais Dreamweaver CS6
autonomo
Biweekly Financial Commentary 06 07 03
Biweekly Financial Commentary 06 07 03
Ant Wong
090525-homology search(ensembl, local)
090525-homology search(ensembl, local)
ocha_kaneko
Keni20 Sample
Keni20 Sample
web marketing
090601-dotplot
090601-dotplot
ocha_kaneko
Mais procurados
(19)
Sole mate size_chart
Sole mate size_chart
Samt22
Samt22
Decade Ugawa
Decade Ugawa
CEO-035-拍賣王的網路世界
CEO-035-拍賣王的網路世界
【13-D-1】 ERP5に見るストレージ技術
【13-D-1】 ERP5に見るストレージ技術
QM-086-ITD-06-製程能力分析
QM-086-ITD-06-製程能力分析
商業登記電子証明書のすゝめ
商業登記電子証明書のすゝめ
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
【13-B-4】 Java VMへの処方箋 ~先進のメモリ管理技術とは~
GIGAPOD OFFICEHARD
GIGAPOD OFFICEHARD
ATND - Recruit Media Technology Labs (Internet Week 2008)
ATND - Recruit Media Technology Labs (Internet Week 2008)
第6回 「アフリカの天然資源と開発」資料1/1
第6回 「アフリカの天然資源と開発」資料1/1
20090312
20090312
胸腔胃-气道瘘:经鼻空肠营养管和胃减压管置入治疗--申
胸腔胃-气道瘘:经鼻空肠营养管和胃减压管置入治疗--申
IDDP第2回勉強会説明資料081128
IDDP第2回勉強会説明資料081128
eBook Tutoriais Dreamweaver CS6
eBook Tutoriais Dreamweaver CS6
Biweekly Financial Commentary 06 07 03
Biweekly Financial Commentary 06 07 03
090525-homology search(ensembl, local)
090525-homology search(ensembl, local)
Keni20 Sample
Keni20 Sample
090601-dotplot
090601-dotplot
Mais de Masaaki Yonebayashi
Go guide for Java programmer
Go guide for Java programmer
Masaaki Yonebayashi
HHVM Hack
HHVM Hack
Masaaki Yonebayashi
Android T2 on cloud
Android T2 on cloud
Masaaki Yonebayashi
JavaFX-with-Adobe
JavaFX-with-Adobe
Masaaki Yonebayashi
Guice2.0
Guice2.0
Masaaki Yonebayashi
Flex's DI Container
Flex's DI Container
Masaaki Yonebayashi
T2 in Action
T2 in Action
Masaaki Yonebayashi
guice-servlet
guice-servlet
Masaaki Yonebayashi
T2@java-ja#toyama
T2@java-ja#toyama
Masaaki Yonebayashi
Merapi -Adobe Air<=>Java-
Merapi -Adobe Air<=>Java-
Masaaki Yonebayashi
sc2009white_T2
sc2009white_T2
Masaaki Yonebayashi
yonex
yonex
Masaaki Yonebayashi
S2Flex2
S2Flex2
Masaaki Yonebayashi
Wankumatoyama#01
Wankumatoyama#01
Masaaki Yonebayashi
Mais de Masaaki Yonebayashi
(14)
Go guide for Java programmer
Go guide for Java programmer
HHVM Hack
HHVM Hack
Android T2 on cloud
Android T2 on cloud
JavaFX-with-Adobe
JavaFX-with-Adobe
Guice2.0
Guice2.0
Flex's DI Container
Flex's DI Container
T2 in Action
T2 in Action
guice-servlet
guice-servlet
T2@java-ja#toyama
T2@java-ja#toyama
Merapi -Adobe Air<=>Java-
Merapi -Adobe Air<=>Java-
sc2009white_T2
sc2009white_T2
yonex
yonex
S2Flex2
S2Flex2
Wankumatoyama#01
Wankumatoyama#01
sc2009white_Teeda
1.
Seasar Conference
2009 White Teeda - JSF からのTeeda -
2.
自己紹介 名前 米林 正明 ID
id:yone098 所属 株式会社Abby 代表取締役社長 BLOG よねのはてな http://d.hatena.ne.jp/yone098
3.
自己紹介 Seasarとの関わり Teeda committer
S2JSF Project leader Teeda執筆活動 JavaExpert#01 JavaExpert#02 Teeda本 5月末~6月初
4.
自己紹介 宣伝 株式会社ヌーラボ
http://www.nulab.co.jp/ 業務提携しました Backlog http://www.backlog.jp/ キュアル 日本初(世界初?)プリクラ動画 LIVE PARK in AKIBAにて3台稼動中
5.
Agenda What is Teeda? JSF
and Teeda Core Teeda Extension Teeda Ajax Teeda Test Teeda Tips
6.
Teeda What is Teeda?
7.
Teeda “てぃーだ” 沖縄の言葉で「太陽」 実装Webアプリケーションフレームワーク
Java実装 Seasarプロジェクトにて開発 http://teeda.seasar.org/ja/ 日本初JSF実装 コンセプト JSF meets DI × AOP
8.
Teeda Teedaの構成 Teeda Core
JSF1.1の実装 JSFにおけるUIコンポーネントの管理にSeasar2を利用 Teeda Extension Teeda CoreをベースにHTMLテンプレートと規約に基づい た拡張機能 Teeda Ajax Ajaxに特化したライブラリ 単独利用も可能
9.
Teeda What is Teedaのまとめ
Teedaは3構成 JSF実装部分 拡張Extention部分 Ajax部分
10.
Teeda JSF and Teeda
Core
11.
Teeda
とは JSFとは JavaServer Facesの頭文字とった略語 「Faces」 → MVCにおける顔(UIを表現) Servlet API は原則意識しない 画面の入力値やイベント処理をManaged Bean(POJO)に指定する 開発やテストがし易いメリット 規格(JSR-127)であり実装は無い 実装は各ベンダや各組織が行う
12.
Teeda JSF実装(海外)
実装(海外) 実装 MyFaces 2009/1/30 Core1.2.6 release Tomahawk等のコンポーネントが充実 http://myfaces.apache.org/ S2JSF1.0系のJSF実装
13.
Teeda JSF実装(海外)
実装(海外) 実装 Mojarra(the JSF RI) 2008/12/19 Mojarra 1.2_11 release 2009/2/6 Mojarra 2.0.0 PR2 release やっぱりSun信頼性が高そう https://javaserverfaces.dev.java.net/
14.
Teeda JSF実装(海外)
実装(海外) 実装 ICEFaces 2009/12/02 1.8.0-RC1 release
15.
Teeda JSF実装(海外)
実装(海外) 実装 ICEFaces 2009/12/02 1.8.0-RC1 release AJAXWorld RIA Conference • Best Overall Enterprise RIA Product
16.
Teeda JSF実装(海外)
実装(海外) 実装 ICEFaces 2009/12/02 1.8.0-RC1 release AJAXWorld RIA Conference • Best Overall Enterprise RIA Product http://www.icefaces.org/ 特徴 • D2D(Direct-toDOM)レンダリング • partialSubmit 生産性が高い(NetBeans半端ないです) 半端ないです 半端ないです 実績多数 • Bank Of America/SIEMENTS/JP MORGAN/RIM • ANZ/EDS/EFD/KION/FedEX/SYBASE…他多数
17.
Teeda JSF実装(国内)
実装(国内) 実装 Teeda Core 2009/2/13 Teeda 1.0.13-sp6 release 日本初のJSF実装 • Teeda Coreが出るまでは国内には無かった S2JSF1.1系のJSF実装として採用 • S2JSF1.0系のJSF実装にはMyFacesを採用 Teeda Coreのみでの国内案件実績
18.
Teeda JSFとTeeda Coreを コードを見ながら紹介
19.
Teeda コード見て 理解深める SeasarCon❤
20.
Teeda JSFの動きを確認 簡単な足し算アプリ
21.
Teeda 足し算サンプル(calculate.jsp)
22.
Teeda 足し算サンプル(faces-config.xml)
23.
Teeda 足し算サンプル(CalcAction.java/CalcPage.java)
24.
Teeda まとめ ActionはPOJO ManagedBeanの定義による簡易DI機能 スコープ管理はfaces-config.xml
25.
Teeda Teeda Coreの動きを確認 簡単な足し算アプリ
26.
Teeda JSFの足し算サンプル(teedaCalculate.jsp)
27.
Teeda 足し算サンプル(sample.dicon)
28.
Teeda 足し算サンプル(TeedaCalcAction.java/TeedaCalcPage.java)
29.
Teeda まとめ ActionはPOJO Seasar2によるDI機能 スコープ管理はSeasar2 faces-config.xmlに定義しなくても良い
30.
Teeda Seasar2で管理するメリット 自動DI機能
JSF実装の簡易DIはManagedBeanのみ対象 • バリデータ・コンバータも対象に出来る AOP機能 Seasar2のAOP機能を利用 自動登録機能 Seasar2の自動登録機能を利用 • ManagedBeanが増えても設定ファイル変更無し
31.
Teeda Teeda Coreのまとめ 基盤はJSF実装
DIとAOPにSeasar2採用
32.
Teeda 重要ポイント JSFのライフサイクル
33.
Teeda JSFライフサイクル Restore View
Apply Request Value Process Validation Update Model Value Invoke Application Render Response
34.
Teeda JSFライフサイクル UIコンポーネント復元 コンポーネントへリクエスト値を格納
バリデータ・コンバータ適用 コンポーネント値をManaged Beanに反映 関連付けられたアクション実行 レスポンスのレンダリング
35.
Teeda JSFライフサイクル Restore View
フェーズ ページのコンポーネントビューであるUIViewRootを 作成。JSFからのアクセスの場合にはサーバに UIViewRootが格納されているので復元される。 初めて画面にアクセスした場合に空のUIViewRoot を作成し、残りのフェーズをスキップしRender ResponseフェーズでHttpレスポンスを返します。
36.
Teeda JSFライフサイクル Apply Request
Value フェーズ ブラウザから送信された値をRestore Viewフェーズ で復元されたコンポーネントに反映します。
37.
Teeda JSFライフサイクル Process Validation
フェーズ コンポーネントに登録された全てのバリデーション を実行します。 バリデーションエラー・コンバージョンエラーがあった場合は 残りのフェーズをスキップしてRender Responseフェーズ を実行します。
38.
Teeda JSFライフサイクル Update Model
Value フェーズ コンポーネントの値をManaged Beanに反映します。
39.
Teeda JSFライフサイクル Invoke Application
フェーズ ボタンやリンクに関連づけられたアクションイベント を処理します。
40.
Teeda JSFライフサイクル Renderer Response
フェーズ レスポンスを生成します。レンダリングが終了すると コンポーネントの状態がサーバに保存されます。設 定によってはクライアントに保存。
41.
Teeda JSFライフサイクルのまとめ ライフサイクルを理解しておくことによって Teedaでエラーが発生した場合に、どのよ うな動きをしているのか把握し易い。 Teeda CoreだけでなくTeeda Extentionで も同様です。
42.
Teeda Teeda Extension
43.
Teeda Teeda Coreをベースに HTMLと規約に基づいた拡 張を提供
44.
Teeda 何故Extension?
45.
Teeda JSFで改善したかった部分 viewがJSP faces-config.xmlの肥大化
forwardベースのアーキテクチャ URLがずれる
46.
Teeda 改善
47.
Teeda Teeda Extensionの特徴 HTMLテンプレート
レスコンフィグレーション PRGパターン SMART Deploy
48.
Teeda HTMLテンプレート Page駆動開発 HTMLを中心に開発するスタイル
HTMLに対応するPageクラスを作成 • PageクラスはPOJO • EclipseプラグインであるDoltengを使えば自 動生成可能 HTMLのid属性⇔Pageクラスのプロパティ
49.
Teeda Pageクラス 命名規則
HTML名の先頭を大文字にして Pageというサフィックスをつける test.html→TestPage.java
50.
Teeda test.html
TestPage.java
51.
Teeda 復習
52.
Teeda Teedaの基盤はJSF HTMLテンプレートからJSP を連想してみる
53.
Teeda 内部理解の近道
54.
Teeda レスコンフィグレーション Struts
struts-config.xml JSF faces-config.xml Teeda 遷移先の設定を書かない
55.
Teeda test.html
TestPage.java ともにlink.htmlへ遷移
56.
Teeda convention.dicon
ルートパッケージを登録するだけ
57.
Teeda PRGパターン POST REDIRECT GET
58.
Teeda JSFの動作原理 forwardベースのアーキテクチャ URLがずれる
59.
Teeda JSFの場合
60.
Teeda PRGの場合
61.
Teeda PRGパターンのメリット ブラウザのリロードによる予期せぬ更新を 防げる ブラウザの戻るボタン対応 表示されるURLがずれない
62.
Teeda SMART Deploy Seasar2.4の機能 Tomcat等のWebコンテナを起動し
たまま画面の追加変更を行い即座に 確認可能
63.
Teeda JSFライフサイクルとの関係
64.
Teeda Teeda Extensionまとめ JSF単体よりも開発しやすい
65.
Teeda Teeda Ajax
66.
Teeda Teeda Ajax 簡単にPageクラスのメソッドをAjaxで
呼び出せる JSの関数名により呼び出すコンポーネ ント解決 サブアプリケーション名+”_” Pageクラス名+”_” メソッド名
67.
Teeda ajax.html
AjaxPage.java
68.
Teeda Teeda Ajax補足 Kumuを使わなくても可能
prototype.js jQuery 独自ライブラリ
69.
Teeda Teeda Ajaxまとめ
Seasar2配下コンポーネントが JavaScriptから手軽に利用できる
70.
Teeda Teeda Test
71.
Teeda Teeda Test TeedaTestCase
JUnitの拡張テストケース FacesContextなどのモックを標準で用意 TeedaWebTester APサーバにデプロイした状態でテスト 画面からの操作を自動化 jWebUnit/HtmlUmitで構築
72.
Teeda
TeedaTestCase public class DownloadActionTest extends TeedaTestCase { DownloadAction action = new DownloadAction(); action.setResponse(getResponse()); assertEquals(false, getFacesContext().getResponseComplete()); action.download(); assertEquals(true, getFacesContext().getResponseComplete()); }
73.
Teeda TeedaWebTester public
class AddWebTest extends TestCase { public void testAdd() throws Exception { final TeedaWebTester tester = new TeedaWebTester(); tester.beginAt(quot;http://localhost:8080/teeda-html-examplequot;, quot;view/add/add.htmlquot;); tester.setTextById(quot;arg1quot;, quot;quot;); // @Required tester.setTextById(quot;arg2quot;, quot;aaaquot;); // converter tester.submitById(quot;doCalculatequot;); tester.dumpHtml(); // for debug 値 入力してください してください(INPUT1)quot;); tester.assertTextEqualsById(quot;arg1Messagequot;, quot;値を入力してください tester.assertTextEqualsById(quot;arg2Messagequot;, quot;¥quot;INPUT2¥quot; : 値(aaa)は適切な型に変換 は適切な できません。 できません。quot;); } }
74.
Teeda Teeda Tips
75.
Teeda Teeda Tips 動かない場合疑うポイント
HTMLに対応するPageクラスが存在するか? Pageクラスが正常にS2に登録されているか? バリデーション・コンバージョンエラーが発生していないか? HTMLのFormのidがxxxFormになっているか? Formがネストしていないか?
76.
Teeda Teeda Tips SMART
Deployで嵌るポイント COOL Deploy時に動作しない • Pageクラスの継承元が抽象クラスになっているか? 独自クラスがSMART Deploy対象にならない • diconファイルに自分で登録していないか? ClassCastExceptionが発生 • HttpSessionを直接使用していないか? • 自分でgetComponentを行わずDIしてもらう
77.
Teeda Teeda Tips 拡張ポイント
カスタムコンポーネント作成 • UIコンポーネント, レンダラ, Tagクラス カスタムバリデーション作成 カスタムコンバータ作成 TeedaAjax拡張 • prototype.js, jQuery, ExtJS 各ライフサイクルフェーズへの処理の差込 • カスタムPhaseListener
78.
Teeda Teeda振り返り Teeda Core
Teeda Extension Teeda Ajax Teeda Test Teeda Tips
79.
Teeda Teedaの今後
80.
Teeda Teedaの今後 1.0系
小さな修正をService Packとして提供 1.1系 ネストしたプロパティ対応 forwardによる画面遷移対応 コマンドリンク対応
81.
Teeda Teedaの今後 Seasarのメインストリームから外れた? 他プロダクトが注目されている時こそ、
使ってくれるユーザへのMLでの対応や BLOGでの対応が必要
82.
Teeda 助け合う そんな気持ちで OSS❤
83.
Teeda Enjoy Teeda! Enjoy OSS!
84.
Teeda ご清聴
ありがとう ございました
Baixar agora