Submit Search
Upload
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
•
6 likes
•
4,234 views
Y Watanabe
Follow
2013年5月11日に新宿で開催された、日本Javaユーザーズグループ クロスコミュニティカンファレンス(JJUG CCC)での講演資料です。
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 45
Download now
Download to read offline
Recommended
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
Y Watanabe
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Y Watanabe
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
yoshioka_cb
capybara で快適なテスト生活を
capybara で快適なテスト生活を
Ryunosuke SATO
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介
Seiko Kuchida
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
Jun-ichi Sakamoto
Recommended
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
Y Watanabe
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
Y Watanabe
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
Y Watanabe
RailsでReact.jsを動かしてみた話
RailsでReact.jsを動かしてみた話
yoshioka_cb
capybara で快適なテスト生活を
capybara で快適なテスト生活を
Ryunosuke SATO
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介
Seiko Kuchida
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
C# で Single Page Web アプリが開発できるフレームワーク&開発環境 「Blazor」 ― その概要と Web アプリ開発者にもたらす利点
Jun-ichi Sakamoto
High Performance Gulp
High Performance Gulp
Keisuke Imura
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
silvers ofsilvers
Alt01-LT
Alt01-LT
Yuta Hiroto
C# で Single Page Web アプリを開発できる Blazor ― その魅力
C# で Single Page Web アプリを開発できる Blazor ― その魅力
Jun-ichi Sakamoto
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
jQueryを中心としたJavaScript
jQueryを中心としたJavaScript
hideaki honda
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
Hayashi Yuichi
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
Reactつかってみた
Reactつかってみた
Minori Tokuda
究極にして至高のWAF
究極にして至高のWAF
Yuki Ishikawa
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
svelte と tailwind で始めるフロントエンド開発
svelte と tailwind で始めるフロントエンド開発
Shuichi Takaya
Rails勉強会資料
Rails勉強会資料
Yoshimitsu Ogawa
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Yuki Minakawa
Blazor 触ってみた
Blazor 触ってみた
Oda Shinsuke
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
Jun-ichi Sakamoto
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
ytanno
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
Y Watanabe
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Jun Futagawa
More Related Content
What's hot
High Performance Gulp
High Performance Gulp
Keisuke Imura
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
silvers ofsilvers
Alt01-LT
Alt01-LT
Yuta Hiroto
C# で Single Page Web アプリを開発できる Blazor ― その魅力
C# で Single Page Web アプリを開発できる Blazor ― その魅力
Jun-ichi Sakamoto
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
Muyuu Fujita
jQueryを中心としたJavaScript
jQueryを中心としたJavaScript
hideaki honda
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
Hayashi Yuichi
React を導入したフロントエンド開発
React を導入したフロントエンド開発
daisuke-a-matsui
Reactつかってみた
Reactつかってみた
Minori Tokuda
究極にして至高のWAF
究極にして至高のWAF
Yuki Ishikawa
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Y Watanabe
svelte と tailwind で始めるフロントエンド開発
svelte と tailwind で始めるフロントエンド開発
Shuichi Takaya
Rails勉強会資料
Rails勉強会資料
Yoshimitsu Ogawa
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Yuki Minakawa
Blazor 触ってみた
Blazor 触ってみた
Oda Shinsuke
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
Jun-ichi Sakamoto
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
ytanno
What's hot
(20)
High Performance Gulp
High Performance Gulp
angular X designer - デザイナからみたAngularJS #ten1club
angular X designer - デザイナからみたAngularJS #ten1club
Alt01-LT
Alt01-LT
C# で Single Page Web アプリを開発できる Blazor ― その魅力
C# で Single Page Web アプリを開発できる Blazor ― その魅力
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
jQueryを中心としたJavaScript
jQueryを中心としたJavaScript
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
React を導入したフロントエンド開発
React を導入したフロントエンド開発
Reactつかってみた
Reactつかってみた
究極にして至高のWAF
究極にして至高のWAF
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
svelte と tailwind で始めるフロントエンド開発
svelte と tailwind で始めるフロントエンド開発
Rails勉強会資料
Rails勉強会資料
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Blazor 触ってみた
Blazor 触ってみた
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
Viewers also liked
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
Y Watanabe
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Jun Futagawa
Mixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
Y Watanabe
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
Y Watanabe
日本語によるJUnitの拡張について
日本語によるJUnitの拡張について
Kazuro Fukuhara
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
Y Watanabe
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
Y Watanabe
Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016
Yoshio Terada
properties, yaml, and me
properties, yaml, and me
Y Watanabe
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Y Watanabe
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
Y Watanabe
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Y Watanabe
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
sogdice
Viewers also liked
(14)
The cost of learning - advantage of mixer2
The cost of learning - advantage of mixer2
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
Mixer2によるdynamic css sprite 201309第三回渋谷java
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
日本語によるJUnitの拡張について
日本語によるJUnitの拡張について
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
Java Puzzlers JJUG CCC 2016
Java Puzzlers JJUG CCC 2016
properties, yaml, and me
properties, yaml, and me
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
テストゼロからイチに進むための戦略と戦術
テストゼロからイチに進むための戦略と戦術
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Similar to 20130511 jjug ccc講演 さらばjsp JAXBとmixer2
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
Yusuke Suzuki
Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018
Yusuke Suzuki
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
kamiyam .
JJUC CCC 2013 Fall 基調講演「Javaと未来のこととCCC]
JJUC CCC 2013 Fall 基調講演「Javaと未来のこととCCC]
Yusuke Suzuki
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
Yoshiharu Hashimoto
福井イベント
福井イベント
Yoshio Terada
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
Satoshi Kisanuki
JJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynote
心 谷本
aws_opsworks
aws_opsworks
Yukihiko SAWANOBORI
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
R5 3 type annotation
R5 3 type annotation
EIICHI KIMURA
最近のASP.NET事情2013Winter
最近のASP.NET事情2013Winter
Narami Kiyokura
クラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukui
Yusuke Suzuki
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Kazuhiro Sera
Html5 nagoya 07
Html5 nagoya 07
Yoshiaki Sugimoto
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッション
Yoichiro Tanaka
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
JSer Class #3
JSer Class #3
mizuky fujitani
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
Kazuhiro Yoshimoto
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Similar to 20130511 jjug ccc講演 さらばjsp JAXBとmixer2
(20)
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018
Node.jsで始める Modern JavaScript Framework
Node.jsで始める Modern JavaScript Framework
JJUC CCC 2013 Fall 基調講演「Javaと未来のこととCCC]
JJUC CCC 2013 Fall 基調講演「Javaと未来のこととCCC]
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
福井イベント
福井イベント
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
JJUG CCC 2015 Fall keynote
JJUG CCC 2015 Fall keynote
aws_opsworks
aws_opsworks
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
R5 3 type annotation
R5 3 type annotation
最近のASP.NET事情2013Winter
最近のASP.NET事情2013Winter
クラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukui
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Html5 nagoya 07
Html5 nagoya 07
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッション
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
JSer Class #3
JSer Class #3
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
Scalaでのプログラム開発
Scalaでのプログラム開発
Recently uploaded
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
Hiroshi Tomioka
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
Recently uploaded
(9)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
1.
プロローグ PROLOGUE 1
2.
1999 Java Server Pages 2
3.
当時の業界記事 Sun、「JavaServer Pages」の仕様を公開 http://java.sun.com/products/jsp/ Sun Microsystems社は2日、「JavaServer Pages(JSP)」技術を発表した。 ...MicrosoftのActive
Server Pages (ASP)に替わるテクノロジーとして... 3 出典:http://internet.watch.impress.co.jp/www/article/1999/0603/jsp.htm
4.
2013 4
5.
©技術評論社
6.
Q. 実際、ビューとして何を使ってますか? A) JavaScript
+ JSON/XML B) Velocity, Mayaa, etc C) JSP
7.
21世紀ですよ。
8.
JAXBとテンプレートエンジン Mixer2 - さらばJSP - 8 JJUG
CCC 2013 Spring 日本Javaユーザーズグループ クロスコミュニティカンファレンス R5-1 ベルサール西新宿 2013-05-11
9.
自己紹介 • わたなべ • SI屋の技術屋さん •
@nabedge • http://nabedge.blogspot.jp 9
10.
目次 1.テンプレートエンジン 2.JAXBとMixer2 3.性能比較 4.Mixer2の欠点 5.ビューのテストをJUnitで 6.エピローグ 10
11.
テンプレートエンジン 11 JSP:一番身近なテンプレートエンジン こんにちは <% if (name
== null) { %> ゲストさん <% } else { %> <%= name %>さん <% } %> 通常のJava言語、EL式、カスタムタグで書く
12.
テンプレートエンジン 12 Velocity:老舗 こんにちは #if (name ==
null) { ゲストさん #else ${name}さん #end VTL = Velocity Template Languageで書く
13.
テンプレートエンジン 13 FreeMarker:最近人気 こんにちは <#if name?has_content> ${name}さん <#else> ゲストさん </#if> FTL =
Freemarker Template Languageで書く
14.
要するに? たいていのテンプレートエンジンは、 何らかの テンプレート記述言語(っぽいもの) を覚えなければならない 14
15.
Mixer2 15 こんにちは <span id=“name”>ななし</span>さん Span span
= html.getById(“name”, Span.class); span.getContent.clear(); span.getContent.add(“ヤマダ”); // これで <span id=“name”>ヤマダ</span>さん // が出力 テンプレートは純粋なXHTMLとCSS 値の埋め込みやロジックは普通のJava
16.
Take back control
! Java-Webアプリケーションの Viewを、 本来の純粋な Javaプログラミングと htmlマークアップの世界に 取り戻す! 16
17.
17 1.テンプレートエンジン 2.JAXBとMixer2 3.性能比較 4.Mixer2の欠点 5.ビューのテストをJUnitで 6.エピローグ
18.
JSR-222 Java Architecture for XML Binding 18
19.
JAXBによるmarshalとunmarshal 19 JAXB API <root> <foo>aaa</foo> <bar>bbb</bar> <foo>ccc</foo> <bar>ddd</bar> </root> root foo bar アンマーシャル マーシャル XML文字列 Javaオブジェクト
20.
Mixer2によるロードとセーブ 20 Mixer2 &JAXB <html> <head> … </head> <body> … </body> </html> Html Head Body loadHtmlTemplate saveToString XHTML Javaオブジェクト
21.
Mixer2のHTMLタグとJava型 21 <html>…</html> ⇔ org.mixer2.jaxb.xhtml.Html <div>…</div> ⇔ org.mixer2.jaxb.xhtml.Div •
Mixer2では HTMLタグと Javaオブジェクトを相互マッピング JAXBのXJCで自動生成した約120種 のJavaクラスを利用
22.
タグの属性へのアクセス 22 • タグの属性はJavaオブジェクトの プロパティにマッピング。 • setter/getterメソッドでアクセス。 <div
id=“foo”>…</div> をテンプレートとしてロードすると String id = div.getId(); // これでidに”foo” (html4/5のすべての属性を実装済み)
23.
複数要素はListになる 23 <html> <body> <p>Hello World</p> foo <span>bar</span> </body> </html> index 型 0
P 1 String 2 Span Html html = mixer2Engine .loadHtmlTemplate( “template.html”); java.util.List<Object> list = html.getBody() .getContent(); listの中身template.html
24.
24 デモ サンプルWebアプリ 「フルーツショップ」 https://github.com/nabedge/mixer2- sample/tree/master/mixer2-fruitshop-springmvc • 時間を確認 • 15分~20分くらい?
25.
MVCフレームワークとMixer2 1. ViewエンジンとしてのMixer2 2. なんらかのMVCフレームワーク SpringMVC,
Struts2, SAStruts... 3. 組み合わせれば鬼に金棒 Spring勉強会の資料も参考にどうぞ。 http://nabedge.blogspot.jp/2013/02/spring-study.html 25
26.
コアなファンのありがたい賛辞 26
27.
27 1.テンプレートエンジン 2.JAXBとMixer2 3.性能比較 4.Mixer2の欠点 5.ビューのテストをJUnitで 6.エピローグ
28.
コアなファンによる ざっくり比較 28 このツッコミもかなり当たってます
29.
自分でもテストしてみた 1. フルーツショップの商品詳細ページ →JSP, Velocity,
Thymeleaf, Mixer2で 同じ画面を作る 2. ApacheJMeterでhttpアクセスを浴びせる 29
30.
前のページは正確な性能比較か? 30 START END 1. 15ms以下だと観測誤差が大きい(CPU/OS次第) 2.
総時間での比較はノイズありすぎ (でもjspと比較するにはこうするしかない) VIEW処理 httpリクエスト コントローラ 処理 ビジネスロジック httpレスポンス
31.
とにかく、体感速度としてはどうなの? 31
32.
32 1.テンプレートエンジン 2.JAXBとMixer2 3.性能比較 4.Mixer2の欠点 5.ビューのテストをJUnitで 6.エピローグ
33.
Mixer2の欠点 1. 性能 →気にするほどの影響かどうか?がポイント 2. HTML
ではなく XHTML が必須 →HTML5もXML文法で書けばOK 3. <!-- コメント --> は消えてしまう →どうでもいい? 4. スクリプトレットが無い代わりにJavaコー ドが肥大化する →Ctrl+Space補完が効くならいいのでは? 33
34.
ちょっと一息 34 • 水分補給 • 時間を確認 •
35分前後?
35.
35 1.テンプレートエンジン 2.JAXBとMixer2 3.性能比較 4.Mixer2の欠点 5.ビューのテストをJUnitで 6.エピローグ
36.
よく見かける開発ルール、スローガン 『ちゃんとJUnitでテスト書こうぜ!』 ※ただしJSPは除く 36
37.
SeleniumはUT用ではありません • selenium-java-2.*.jar • テスト対象をWebアプリとして APサーバ上で稼働させておくのが 前提条件。 •
つまり、単体テストではなく 結合テストの回帰実行をするための もの。 37
38.
Mixer2とJUnitの基本 38 タグ型 オブジェクト 加工前 タグ型 オブジェクト 加工後 処理 span.unsetContent(); span.getContent().add(“Hello”); assertThat( span.getContent().get(0).toString() ,is(“Hello”));
39.
Mixer2によるViewヘルパーのテスト 39 実際のテストコードで説明します https://github.com/nabedge/mixer2- sample/blob/master/mixer2-fruitshop- springmvc/src/test/java/org/mixer2/samp le/web/
40.
エピローグ EPILOGUE 40
41.
「さらば JSP」? うん、あれは、釣りです。 ごめんなさい。 41
42.
ハサミは使いよう • 心配性の人は枯れてるJSPで。 • Velocityが慣れている人は Velocityで。 •
TwitterやFacebookみたいな 画面が必要ならJavaScriptで。 42
43.
Mixer2の部分マーシャルの活用 43 Div div =
html.getById(“foo”,Div.class); String str = m2Engine.saveToString(div); 1. 特定のタグ(ここではdiv)だけを文字列化 2. ほかのテンプレート形式に混ぜて出力可能 <%-- JSP --%> <html> <body> <%=str %> </body> </html> <html> <body> <div id=“foo”>.......</div> </body> </html>
44.
「選択肢のひとつ」としてのMixer2 44
45.
ご静聴ありがとうございました! http://mixer2.org/ 45
Download now