アプリ開発

Thymeleafでヘッダー・フッター・メニューなどを外だしするにはフラグメントを使用する

更新日:

業務システムでは、ヘッダー・フッター・メニューなどを外だしすることが多い。
SAStrutsなどではtiles:putを使用して実現していたようなことだ。

Thymeleafではフラグメント化という機能を使用し、2パターン用意が使える。

読み込まれる側の定義

読み込みたい属性に th:fragment="フラグメント名"を付けておく。

もしくは、単純にid属性を指定するだけでも良い。
下記例では、common.htmlに外だしするとする。

例1)
<span th:fragment="hoge1">フラグメントhoge1の内容</span>

例2)
<span id="hoge2">フラグメントhoge2の内容</span>

読み込む側の実装

  • th:include属性を使用する方法
  • th:replace属性を使用する方法

がある。読み込まれる側の定義でしたフラグメント名を上記属性値に指定するだけである。

th:includeの注意点は、タグ内の要素だけを取得してくることです。
属性も含めて取得する場合は、置換、すなわちth:replaceを使用する必要がある。

読み込む側の実装
例1)
<span th:include="common::hoge1">hoge1に置換されます</span>

例2)
<span th:include="common::hoge2">hoge2に置換されます</span>

読み込まれる側に変数を埋め込むのも可能

もちろん、読み込まれる側(共通部分)に変数(プロパティ)を埋め込むこともできる。

読み込まれる側にこのように書いておく。
<span th:text="${hoge3}">hoge3に置換されます</span>

コントローラークラスで
model.addAttribute("hoge3", "hoge3の内容です");
上記のように書いておけば、hoge3は置換される。

 

フラグメント化すると、起動するまで全体像が見えない

フラグメント化してしまうと、SpringBoot起動するまで全体が見えなくなってしまう。

Thymeleafを使う理由はデザイナーとプログラマの協業可能と言う点が大きいのだが、残念ながらフラグメント化してしまうとそれが不可能になってしまう。

<参考>
http://blog.hachiro.info/entry/2013/12/22/115438

【転職のプロが薦める】Web系自社開発のための転職エージェントランキング!

 転職満足度は『「いかに自分の希望にあう、条件のよい」企業から内定が出たか』で決まります。そのため、Web系企業に転職するときのエージェントを選ぶポイントは、「Web系企業の求人」をいくつ持っているかに尽きます。なので、総合大手よりも、Web系企業の求人を多くもつIT専門転職エージェントがオススメです。

ギークリー

  • Web系企業の求人数は9000以上とダントツに多い。
  • 「リクナビNEXTエージェントNetwork」にて、「紹介求人案件満足度部門」「カウンセリング・対応満足度部門」で1位獲得!
  • 「営業が強い」という口コミが多いが、その分熱心に求人を提案してくれる。
  • 無料相談のWEB登録は、履歴書・職務経歴書不要で、たった60秒で超簡単
  • 無料相談は東京・神奈川・埼玉・千葉で勤務できるエンジニアが対象。

レバテックキャリア

  • Web系企業の求人数が4000以上と豊富
  • 「GOOD AGENT AWARD」で「2018年金賞」受賞!
  • 転職業界の人間同士の会話でも、ITといえばレバテックとまず挙がる。
  • 無料相談のWEB登録は、履歴書・職務経歴書不要で、たった60秒で超簡単
  • 無料相談は東京、千葉、埼玉、神奈川、大阪、兵庫、京都、福岡で勤務できるエンジニアが対象。

ワークポート

  • 求人数は2000以上と上2社より少ないが、古くからIT専門として有名。
  • 「GOOD AGENT RANKING」で「転職決定人数部門」第1位獲得!
  • 無料相談のWEB登録は、履歴書・職務経歴書不要で、たった60秒で超簡単

-アプリ開発

Copyright© SIerからWeb系自社開発に転職!失敗して感じたたった1つの後悔 , 2019 All Rights Reserved.