Suche senden
Hochladen
Apache Tapestry
•
0 gefällt mir
•
1,184 views
A
Akio Katayama
Folgen
知っ得納得Webフレームワーク勉強会のスライド
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 44
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Spring AMQP × RabbitMQ
Spring AMQP × RabbitMQ
Keisuke Nishitani
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Jun Futagawa
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013
純生 野田
XPagesでRESTを使ってみたら、こんなんだった
XPagesでRESTを使ってみたら、こんなんだった
Masahiko Miyo
Inside Movable Type
Inside Movable Type
純生 野田
Empfohlen
Spring AMQP × RabbitMQ
Spring AMQP × RabbitMQ
Keisuke Nishitani
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
土岐 孝平
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Jun Futagawa
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013
純生 野田
XPagesでRESTを使ってみたら、こんなんだった
XPagesでRESTを使ってみたら、こんなんだった
Masahiko Miyo
Inside Movable Type
Inside Movable Type
純生 野田
Apache Tapestry
Apache Tapestry
Akio Katayama
Tapestryin talentsanjose1977july3
Tapestryin talentsanjose1977july3
redthistle
Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5
Marcelo Rodrigues
Tapestry 5: Java Power, Scripting Ease
Tapestry 5: Java Power, Scripting Ease
Howard Lewis Ship
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
勲 國府田
REST and some Python (or 'Python "sinners" must REST')
REST and some Python (or 'Python "sinners" must REST')
Sabin Buraga
Android Architecture Componentsの新機能
Android Architecture Componentsの新機能
Damper Matsu
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
Developers Summit
Vue入門
Vue入門
Takeo Noda
Html5 Web Applications
Html5 Web Applications
totty jp
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
20081003
20081003
小野 修司
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本
Hajime Fujimoto
Using the Fragments(Android)
Using the Fragments(Android)
Teruaki Kinoshita
CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8
Akira Onishi
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Shotaro Suzuki
クラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチ
Tomoharu ASAMI
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
Jumpei Ogawa
Dynamic Data
Dynamic Data
Visual Studio Users Group Japan
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
SimpleModeler
SimpleModeler
Tomoharu ASAMI
Ajax basic
Ajax basic
Katsuyuki Seino
Weitere ähnliche Inhalte
Andere mochten auch
Apache Tapestry
Apache Tapestry
Akio Katayama
Tapestryin talentsanjose1977july3
Tapestryin talentsanjose1977july3
redthistle
Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5
Marcelo Rodrigues
Tapestry 5: Java Power, Scripting Ease
Tapestry 5: Java Power, Scripting Ease
Howard Lewis Ship
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
勲 國府田
REST and some Python (or 'Python "sinners" must REST')
REST and some Python (or 'Python "sinners" must REST')
Sabin Buraga
Andere mochten auch
(6)
Apache Tapestry
Apache Tapestry
Tapestryin talentsanjose1977july3
Tapestryin talentsanjose1977july3
Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5
Tapestry 5: Java Power, Scripting Ease
Tapestry 5: Java Power, Scripting Ease
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
REST and some Python (or 'Python "sinners" must REST')
REST and some Python (or 'Python "sinners" must REST')
Ähnlich wie Apache Tapestry
Android Architecture Componentsの新機能
Android Architecture Componentsの新機能
Damper Matsu
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
Developers Summit
Vue入門
Vue入門
Takeo Noda
Html5 Web Applications
Html5 Web Applications
totty jp
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
20081003
20081003
小野 修司
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本
Hajime Fujimoto
Using the Fragments(Android)
Using the Fragments(Android)
Teruaki Kinoshita
CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8
Akira Onishi
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Shotaro Suzuki
クラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチ
Tomoharu ASAMI
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
Jumpei Ogawa
Dynamic Data
Dynamic Data
Visual Studio Users Group Japan
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe
SimpleModeler
SimpleModeler
Tomoharu ASAMI
Ajax basic
Ajax basic
Katsuyuki Seino
20091207
20091207
小野 修司
HTTPとサーブレット
HTTPとサーブレット
Takashi Makino
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
miso- soup3
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」
Kohsuke Kawaguchi
Ähnlich wie Apache Tapestry
(20)
Android Architecture Componentsの新機能
Android Architecture Componentsの新機能
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
Vue入門
Vue入門
Html5 Web Applications
Html5 Web Applications
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
20081003
20081003
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本
Using the Fragments(Android)
Using the Fragments(Android)
CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
クラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチ
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
Dynamic Data
Dynamic Data
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
SimpleModeler
SimpleModeler
Ajax basic
Ajax basic
20091207
20091207
HTTPとサーブレット
HTTPとサーブレット
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」
Mehr von Akio Katayama
Awsではじめるgluster fs 20120726-public
Awsではじめるgluster fs 20120726-public
Akio Katayama
AWS SDK for Java
AWS SDK for Java
Akio Katayama
Amazon Web Services
Amazon Web Services
Akio Katayama
Amazon EC2
Amazon EC2
Akio Katayama
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
Akio Katayama
SpringMVC
SpringMVC
Akio Katayama
Mehr von Akio Katayama
(7)
Awsではじめるgluster fs 20120726-public
Awsではじめるgluster fs 20120726-public
AWS SDK for Java
AWS SDK for Java
Amazon Web Services
Amazon Web Services
Amazon EC2
Amazon EC2
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
SpringMVC
SpringMVC
Kürzlich hochgeladen
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Kürzlich hochgeladen
(10)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
Apache Tapestry
1.
Apache Tapestry -- Open-source
framework for creating dynamic, robust, highly scalable web applications --
2.
自己紹介 名前
片山 暁雄 ID id:c9katayama c95029@gmail.com 所属 株式会社キャピタルアセットプランニング http://www.cap-net.co.jp チームT2Framework http://code.google.com/p/t-2/
3.
Agenda Tapestryとは 基本的な仕組み Pageとtml Component・ Mixin IoC ・Module その他機能 利点欠点 まとめ
4.
Tapestry Tapestryとは
5.
Tapestryとは Apach傘下で開発中のWebフレームワーク トッププロジェクト Servlet・JSPは使用しない イベントドリブン HTMLテンプレート・コンポーネント JSFに似てる(?) IoCコンテナ内臓
6.
Tapestryとは 2001年ごろに開発開始 現在バージョン5 後方互換性なし JDK5以上 Apache2.0 License
7.
Tapestry 基本的な仕組み
8.
基本的な仕組み
Tapestry USER Registry Service Module Module URL HttpServlet Page Browser Tapestry RequestHandler Filter Filter .tml Filter Filter Component Filter
9.
パッケージ構成
USERクラスの登録 ルートパッケージをweb.xmlで指定 他の設定ファイルなし <context-param> param-name>tapestry.app-package</param-name> <param-value>org.apache.tapestry5.tutorial</param-value> </context-param>
10.
パッケージ構成 ルートパッケージ以下 pages services
components mixins base 特別なフォルダ このフォルダからの パッケージ階層も重要
11.
Tapestry Pageとtml
12.
Pageとtml Pageクラス 画面の情報を保持したり、画面からのアクショ ンを受け取ったりするクラス URLと1対1でひも付け tml(TapestryMarkupLanguage)ファイル
HTMLテンプレートファイル Pageと1対1でひも付け URL = Page = tml
13.
Pageとtml Pageクラス public class
GameStart{ @Property private int guess; @Persist private int target; @InjectPage private GameOver gameOver; void initialized(int target){ this.target = target; } @OnEvent(component=“ansLink”) Object handleAnsLink(int guess) { return target==guss ? gameOver. : null; } }
14.
Pageとtml
tml <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <head> <title>Guess A Number</title> </head> <body> <p>Make a guess between one and ten:</p> <p>${message}</p> <t:loop source="1..10" value="guess" xml:space="preserve"> <t:actionlink t:id=“ansLink" context="guess">${guess}</t:actionlink> </t:loop> </body> </html>
15.
Pageとtml
レンダリング時 Page(hoge/Foo.java) にPageから値を .tml(hoge/Foo.tml) 取得 @Property String message ${message} @OnEvent( component=“ansLink”) <t:actionlink Object handleAnsLiks(){} t:id=“ansLink“> 画面アクション時に Pageのメソッドを コールバック
16.
Pageとtml Pageクラス POJO(クラスアノテーションもなし) ${app-package}.pagesパッケージに格納
自動登録 URLと1対1のマッピング 例えば${rootpkg}/pages/hoge/Foo.javaの場合、 http://host/context_root/hoge/foo とマッピングされる
17.
Pageとtml フィールドアノテーション @Property アクセサを自動生成
宣言しないで自分でアクセサをつけてもOK @Persist 他の画面に行っても持ち越す値に付与 セッションに値が入る @Retain リクエスト間で値を保持したい場合に付与
18.
Pageとtml @Inject コンテナからDIしてほしい場合に付与 @InjectService
名前指定でサービスをDIしてほしい場合に付与 @InjectPage 次の画面のインスタンスが欲しい場合に宣言 イベントハンドラーから返すと、その画面に遷移
19.
Pageとtml メソッドアノテーション @OnEvent 「value=EventConstantsの定数」で、各イベント発
生時のハンドル可能 component=コンポーネントidで、指定のコンポーネ ントのアクションをハンドル可能 ACTION ACTIVATE PASSIVATE PREPARE_FOR_RENDER PREPARE_FOR_SUBMIT PREPARE SUBMIT VALIDATE_FORM SUCCESS FAILURE SELECTED PARSE_CLIENT TO_CLIENT VALIDATE REMOVE_ROW ADD_ROW
20.
Pageとtml @OnEventアノテーションは、 onアクション onアクションFromコンポーネントid でも代用可能
@OnEvent( value=EventConstanst.ACTION, component=“ansLink”) public Object hoge(){} public Object onActionFromAnsLink (){ }
21.
Pageとtml tml XHTML形式 ドキュメントルート以下、もしくは
${pkgbase}.pagesパッケージに格納 独自タグ、もしくはHTMLの要素で、コンポーネ ントを記述 <a t:type="pagelink" t:page="address/create"> <t:pagelink page=“address/create”> いずれも同じ
22.
Pageとtml タグ部分はレンダリング時にHTMLに置き換わる ${value}を使って、Pageクラスから値を取得 リンク、フォームなどのクリックで発生する リクエストを、Pageに通知
23.
Tapestry Component・Mixin
24.
コンポーネント Component Javaクラス、tmlファイル、リソース (js,image,CSS)をひとまとめにしたもの。 ${tapestry.app-package}.componentsパッケー ジに格納
25.
コンポーネント 作り方 Javaクラスを作成
必要ならtmlを作成 画像・JavaScript・CSSなどが必要な場合は Javaクラスに宣言 実際のコード
26.
コンポーネント 使い方
tml内でコンポーネントを宣言 <t:hoge.foo.Component id=“mycmp” bar=“XXX” />
27.
コンポーネント コンポーネントツリー Pageをルートとしたツリー
ツリーに従いレンダリングやイベント伝播を行う Page layout Page pagelink form
28.
コンポーネント 組み込みComponent Form,Label,TextField PageLink,ActionLink,LinkSubmit
If,Unless Grid BeanDisplay,BeanEditor
29.
コンポーネント Mixin 既存のComponentに対して、機能を追加する ためのもの Componentの各処理に割り込む
作り方はComponentと一緒 ただしtmlは使用不可
30.
コンポーネント 使い方
コンポーネント宣言に使用するmixinを宣言 <t:TextField t:mixins=“autocomplete" id=“mytxt” />
31.
コンポーネント 組み込みMixin Autocomplete RenderDisabled
RenderInformals
32.
Tapestry IoC・ Module
33.
IoC・Module IoC Tapestry組み込みのIoCコンテナ
tapestry5-ioc.jarで提供 本体はtapestry5-core.jar bind Registry ServiceBinder Module Service1 Service1 Service2 Service2
34.
IoC・Module Registry Serviceの集合体
インターフェースとその実装クラス、及び設定 (contribute、decorate)の情報を保持 コアコンポーネント・ユーザーコンポーネント すべてをこのRegistryから取り出す @Inject,@InjectServiceのついたフィールドに インジェクション
35.
IoC・Module Module Serviceと設定をRegistryに登録する役割 ${app.package}/services/アプリ名Module.class
がTapestryFilter初期化時に自動的に呼ばれる すべてstaticメソッド bind()で、サービスをbind contributeサービス名()で、そのサービスの設定 decorateサービス名()で、サービスデコレーターの設 定
36.
Tapestry その他機能
37.
その他機能 オートリロード機能 pages、components、mixins、baseパッケージ 内のクラスやリソースをリロード Ajax対応
zone機能(指定の<div>の中身だけを書き換え) 詳細なエラーページ
38.
Tapestry 利点・欠点
39.
利点 HTMLテンプレートが利用できる URLとクラス・テンプレートの位置関係 が明確 コンポーネント作成が容易・再利用が可 能 IoCコンテナ内臓 カスタマイズが柔軟 オートリロード機能でAPサーバ再起動な しの開発が可能
40.
欠点 学習コストが高い 機能が多いので、すべて知るに時間がかかる ソースが追いくい 匿名クラスやエンハンスされたクラスが多い ライフサイクルがわかりにくい Seasar2,Guiceは使用不可
今出ているのはHiveMindとSpringのアダプタ だけ ORマッパー・トランザクションとの連携 Hibernate連携以外は?
41.
Tapestry まとめ
42.
まとめ Tapestryは、イベントドリブン・コンポー ネント指向・HTMLテンプレート IoCコンテナ・リロード機能つき 結構すごいが学習コストが高め とりあえず 抱かれてみよう Tapestry
43.
まとめ 参考文献 Apache Tapestry
http://tapestry.apache.org/ 有志の日本語訳 http://kuramo.ch/tapestry5/ja/
44.
まとめ ご静聴ありがとうございました
Jetzt herunterladen