Enviar pesquisa
Carregar
SpringBootにおけるテンプレートエンジンの活用
•
1 gostou
•
354 visualizações
iPride Co., Ltd.
Seguir
2022/05/12の勉強会で発表されたものです。
Leia menos
Leia mais
Tecnologia
Vista de apresentação de diapositivos
Denunciar
Compartilhar
Vista de apresentação de diapositivos
Denunciar
Compartilhar
1 de 25
Baixar agora
Baixar para ler offline
Recomendados
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
Masatoshi Tada
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
Recomendados
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
Masatoshi Tada
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
土岐 孝平
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
次世代DaoフレームワークDoma
次世代DaoフレームワークDoma
Toshihiro Nakamura
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
Toshihiro Nakamura
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
ssuser070fa9
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
Masatoshi Tada
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Satoshi Kubo
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
試験にでるSpring
試験にでるSpring
土岐 孝平
ドメイン駆動設計入門
ドメイン駆動設計入門
増田 亨
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
Mais conteúdo relacionado
Mais procurados
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
土岐 孝平
次世代DaoフレームワークDoma
次世代DaoフレームワークDoma
Toshihiro Nakamura
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Recruit Technologies
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
WataruOhno
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
Toshihiro Nakamura
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
ssuser070fa9
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
Masatoshi Tada
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Satoshi Kubo
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
試験にでるSpring
試験にでるSpring
土岐 孝平
ドメイン駆動設計入門
ドメイン駆動設計入門
増田 亨
Mais procurados
(20)
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
次世代DaoフレームワークDoma
次世代DaoフレームワークDoma
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Spring Fest 2018 Spring Bootで作るRESTful Web Service
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー
SpringBootTest入門
SpringBootTest入門
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
試験にでるSpring
試験にでるSpring
ドメイン駆動設計入門
ドメイン駆動設計入門
Semelhante a SpringBootにおけるテンプレートエンジンの活用
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Shotaro Suzuki
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
Brian Gesiak
Gen-Template-for-Perl
Gen-Template-for-Perl
nasneg
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
Shohei Okada
【プログラミング教室】テキスト
【プログラミング教室】テキスト
Manabu Ikarashi
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overview
Mitsuru Ogawa
Code Igniterについて
Code Igniterについて
Keita Ojima
20091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
Building Silverlight Large Scale Application Using MVVM
Building Silverlight Large Scale Application Using MVVM
Shotaro Suzuki
Google App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなこと
a-know
Yapc::Asia 2011 rejectConf Slide
Yapc::Asia 2011 rejectConf Slide
Seiji Ohira
AngularJS入門
AngularJS入門
Kenji Shirane
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
yoshihikoozaki5
Vue入門
Vue入門
Takeo Noda
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
Hirokazu Nishi
Semelhante a SpringBootにおけるテンプレートエンジンの活用
(20)
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
アップルのテンプレートは有害と考えられる
アップルのテンプレートは有害と考えられる
Gen-Template-for-Perl
Gen-Template-for-Perl
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
【プログラミング教室】テキスト
【プログラミング教室】テキスト
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overview
Code Igniterについて
Code Igniterについて
20091030cakephphandson 01
20091030cakephphandson 01
Building Silverlight Large Scale Application Using MVVM
Building Silverlight Large Scale Application Using MVVM
Google App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなこと
Yapc::Asia 2011 rejectConf Slide
Yapc::Asia 2011 rejectConf Slide
AngularJS入門
AngularJS入門
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
Vue入門
Vue入門
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
第1回 Magento Cafe Plus Kansai ~ Magentoカスタマイズ入門
Mais de iPride Co., Ltd.
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
iPride Co., Ltd.
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
iPride Co., Ltd.
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
iPride Co., Ltd.
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
iPride Co., Ltd.
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
iPride Co., Ltd.
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
iPride Co., Ltd.
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
iPride Co., Ltd.
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
iPride Co., Ltd.
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
iPride Co., Ltd.
ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強
iPride Co., Ltd.
OpenID Connectについて
OpenID Connectについて
iPride Co., Ltd.
画像生成AIの問題点
画像生成AIの問題点
iPride Co., Ltd.
AI入門
AI入門
iPride Co., Ltd.
MVCになぞらえて理解するReact
MVCになぞらえて理解するReact
iPride Co., Ltd.
AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~
iPride Co., Ltd.
OAuth2.0について
OAuth2.0について
iPride Co., Ltd.
Mais de iPride Co., Ltd.
(20)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる その3 2024/03/01の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
可用性・セキュリティを考慮して AWSでDrupalを構築する 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWSで全てのパブリックIPv4アドレスが有料になった件について 2024/02/09の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS CDKを使おうとしたら普通に悪戦苦闘した話 2024/02/02の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS (Amazon Web Services) を勉強してみる 2024/01/26の勉強会で発表されたものです
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
AWS SAM入門 2024/01/26の勉強会で発表されたものです【アイ・プライド】
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
Drupalでフォームの代わりにSPA (React) を表示させる話 2023/12/15の勉強会で発表されたものです。
ChatGPTを用いてCDKを勉強
ChatGPTを用いてCDKを勉強
OpenID Connectについて
OpenID Connectについて
画像生成AIの問題点
画像生成AIの問題点
AI入門
AI入門
MVCになぞらえて理解するReact
MVCになぞらえて理解するReact
AIについて学んだこと ~ 生成AIとは? ~
AIについて学んだこと ~ 生成AIとは? ~
OAuth2.0について
OAuth2.0について
SpringBootにおけるテンプレートエンジンの活用
1.
2023.5.12 Xiao SpringBootにおける テンプレートエンジンの活用 ー Thymeleafの基本的な使い方
ー
2.
目次 • まえがき • テンプレートエンジンとは •
テンプレートエンジン Thymeleaf の基本的な使い方 • まとめ
3.
まえがき • 今回の発表資料の参考文献 ・掌田津耶乃 「SpringBoot3
プログラミング入門」 秀和システム(2023) 第3章「テンプレートエンジンの活用」より、 3-1「Thymeleafテンプレートエンジン」の内容を取り上げる。 ※ 第3章「テンプレートエンジンの活用」には、Thymeleafの他に、 Mustache, Groovy templates の内容もあるが、 今回の発表では、Thymeleafのみの説明とする。
4.
テンプレートエンジンとは SpringBootにおけるMVCモデル • SpringBootのWebアプリケーションでは、「MVCモデル」をベースに設計されている。 <MVCモデル> クライアント Controller Model View データベース Controller
: 全体の処理の制御を行うもの Model: アプリケーションで使うデータを管理するもの View: 画面の表示を扱うもの
5.
テンプレートエンジンとは SpringBootにおけるMVCモデル • テンプレートエンジン: MVCモデルの中の
”View” の部分を担当するもの。 • テンプレートとなるテキスト(HTML etc..)を元に、データを組み込んでWebページを生成する。 • テキストのコードを出力するだけでなく、値や式を埋め込んで、実行時に演算処理して画面に表示す ることもできる。 • テンプレートエンジンには種類がある。(Thymeleaf, Groovy templates etc..) • Thymeleaf:JavaのWebアプリケーション開発での利用を前提に開発されているテンプレートエンジン。
6.
Thymeleafの基本的な使い方 値の受け渡し(テンプレート側の書き方) • テンプレート内に変数を埋め込んでおき、コントローラ側で必要な値を渡して表示させる。 <〇〇 th:text=“値”> 例1)テンプレートHTMLの<body>内 <body
class="container"> <h1 class="display-4 mb-4">Hello page</h1> <p class="h6 alert alert-primary" th:text="${msg}"></p> </body> ${ 変数名 } → 変数を埋め込む時の基本的な書き方
7.
Thymeleafの基本的な使い方 値の受け渡し(コントローラ側の書き方) 例1)コントローラ側(Modelの利用) @Controller public class EventschedulerController
{ @RequestMapping("/") public String index(Model model) { model.addAttribute("msg", “This is a sample message.”); return "index"; } } ※ indexメソッドの引数 Model → 後ほど説明 ・値にコメントを入れる場合
8.
Thymeleafの基本的な使い方 値の受け渡し(画面表示) 例1)画面表示 ※受け渡した値 ”This is
a sample message.” が表示される。
9.
Thymeleafの基本的な使い方 値の受け渡し(コントローラ側の書き方) 例2)コントローラ側(Modelの利用) @Controller public class EventschedulerController
{ @RequestMapping("/{num}") public String index(@PathVariable int num, Model model) { int res = 0; for(int i = 1; i <= num; i++) { res += i; } model.addAttribute("msg", "total: " + res); return "index"; } } ・値にパラメータ変数を入れる場合
10.
Thymeleafの基本的な使い方 値の受け渡し(画面表示) 例2)画面表示 ※受け渡した値 ”total” +
res が表示される。 /22 → num = 22; int res = 0; for(int i = 1; i <= num; i++) { res += i; }
11.
Thymeleafの基本的な使い方 値の受け渡し(コントローラ側の書き方) 例3)コントローラ側(ModelAndViewの利用) @Controller public class EventschedulerController
{ @RequestMapping("/{num}") public ModelAndView index(@PathVariable int num, ModelAndView mav) { int res = 0; for(int i = 1; i <= num; i++) { res += i; } mav.addObject("msg", "total: " + res); mav.setViewName("index"); return mav; } } ・例2のindexメソッドの引数をModel → ModelAndViewに書き換える。
12.
Thymeleafの基本的な使い方 値の受け渡し(画面表示) 例3)画面表示 ・Modelを使った時と結果は同じ。
13.
Thymeleafの基本的な使い方 値の受け渡し(ModelとModelAndView) ・ModelとModelAndViewの違い @Controller //<省略> model.addAttribute("msg", "total: "
+ res); return “index"; } } ・Model ・ModelAndView @Controller //<省略> mav.addObject("msg", "total: " + res); mav.setViewName("index"); return mav; } } Model →テンプレート側に渡す情報をまとめて管理する。 (今回は変数msgのみである。) 実際に表示するテンプレートは、 returnで名前を返すことで指定する。 ModelAndView →使用するテンプレートとそこで使われるデータを、 まとめて一つの戻り値で返すことができる。
14.
Thymeleafの基本的な使い方 フォームを利用する • クライアント側で入力した値を受け渡す。(form) 例4)テンプレートHTMLの<body>内 <body class="container"> <h1
class="display-4 mb-4">Hello page</h1> <p th:text="${msg}"></p> <div class="h6 alert alert-primary"> <form method="post" action="."> <div class="input-group"> <input type="text" class="form-control me-1" name="text1" th:value="${value}" /> <span class="input-group-btn"> <input type="submit" class="btn btn-primary px-4" value="Click" /> </span> </div> </form> </div> </body>
15.
Thymeleafの基本的な使い方 フォームを利用する 例4)コントローラ側(ModelAndView) @Controller public class EventschedulerController
{ @RequestMapping(value="/", method=RequestMethod.GET) public ModelAndView index(ModelAndView mav) { mav.addObject("msg", "Fill in your name, please."); mav.setViewName("index"); return mav; } @RequestMapping(value="/", method=RequestMethod.POST) public ModelAndView form(@RequestParam("text1") String str, ModelAndView mav) { mav.addObject("msg", "Hi," + str +"!!"); mav.addObject("value", str); mav.setViewName("index"); return mav; } } HTTPメソッド → アクセスの方法をメソッドとして用意している。 GET : 指定したURLにブラウザなどでアクセスした時。 POST : フォームに入力した内容などが送られてくる。 ※@RequestMapping(method=〇〇)と記載している。 ↓ GET : @GetMapping(“/”) POST : @PostMapping(“/”) *このように簡単に書くこともできる。
16.
Thymeleafの基本的な使い方 フォームを利用する(画面表示) 例4)画面表示 入力フォームに ”John Doe”と入力してClick
17.
Thymeleafの基本的な使い方 ページの利用(フォワードとリダイレクト) • あるアドレスにアクセスしたとき、必要に応じて別のアドレスに移動させたい場合に利用される。 • フォワード:サーバー内部で別のページを読み込み表示するもの。 •
リダイレクト:クライアント側に送られた後で別のページに移動させるもの。 アクセスしているアドレスそのものも移動先のものに変更される。 例5)テンプレートHTMLの<body>内 (例1と同じ) <body class="container"> <h1 class="display-4 mb-4">Hello page</h1> <p class="h6 alert alert-primary" th:text="${msg}"></p> </body>
18.
Thymeleafの基本的な使い方 フォームを利用する 例5)コントローラ側(ModelAndView) @Controller public class eventManageController
{ @RequestMapping(value="/", method=RequestMethod.GET) public ModelAndView index(ModelAndView mav) { mav.addObject("msg", "This is /index page."); mav.setViewName("index"); return mav; } @RequestMapping("/home") public String home() { return "forward:/"; } @RequestMapping("/other") public String other() { return "redirect:/"; } } http://localhost:8080/home でアクセス →フォワード http://localhost:8080/other でアクセス →リダイレクト
19.
Thymeleafの基本的な使い方 画面表示 例5)画面表示 ・http://localhost:8080 でアクセス http://localhost:8080/other でアクセス ・http://localhost:8080/home
でアクセス ・http://localhost:8080/other でアクセス後 forward redirect
20.
Thymeleafの基本的な使い方 • Thymeleafには、「値を受け渡して、その値を表示する( th:text
)」という機能の他にも様々 な機能がある。 • 条件処理 th:if / th:unless • 繰り返し処理 th:each • スイッチ処理 th:switch * 書き方と表示例を次ページより簡単に説明する。
21.
Thymeleafの基本的な使い方 条件処理 th:if /
th:unless • 条件による表示:「その要素を表示するかどうか。」を示す属性が用意されている。 ・ <〇〇 th:if=“${ 値 }”> :値が真だと表示 ・ <〇〇 th:unless=“${ 値 }”> :値が偽だと表示 例)アクセスするごとに表示が変わるサンプル ・boolean変数を用意 boolean fl ag = false; ・アクセスするごとに切り替え fl ag = ! fl ag 真の表示 偽の表示
22.
Thymeleafの基本的な使い方 繰り返し処理 th:each • ${
コレクション }に複数の値を保管する。コレクションから値を順に取り出して変数に代入。 要素内に記述された内容を出力。 例)コレクションに指定した3つの値を 繰り返し表示させるサンプル ・コントローラ側 String[] data = new String[] {“a”, “bb”, “ccc”}; ・テンプレート側 ・ <〇〇 th:each=“変数名 : ${ コレクション }”> …繰り返す表示内容… <〇〇> <ul th:each="item:${data}"> <li th:text="${item}"></li> </ul>
23.
Thymeleafの基本的な使い方 スイッチ処理 th:switch • 値に応じて表示を切り替える。
例)パラメータ変数を用意し、その値に応じて表示する。 ・テンプレート側 ・ <〇〇 th:switch=“${ 変数 }”> <△△ th:case=“ 値1 ”> <△△ th:case=“ 値1 ”> <〇〇> <div th:switch="${number}"> <p th:case="1" th:text="One"></p> <p th:case="2" th:text="Two"></p> <p th:case="3" th:text="Three"></p> </div> …
24.
まとめ • テンプレートエンジン Thymeleaf
の基本的な使い方(テンプレート・コント ローラの書き方)について取り上げた。 • Thymeleafには取り上げた他にも、多くの機能が搭載されている。 • ${ }による変数の埋め込みさえ抑えれば、基本的なWebページの作成はでき る。
25.
ご清聴ありがとうございました。
Baixar agora