質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Q&A

解決済

1回答

3339閲覧

thymeleaf:フラグメントとif文について

wooooo

総合スコア15

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

0グッド

0クリップ

投稿2020/03/21 01:29

編集2020/03/21 02:21

spting bootで開発しております

商品ページで、特定の商品ページにnoindex化させようとしております。
下記のコードで実行した時に
ブラウザの開発者ツールで見た時に
AAAとCCCは表示されますが、
BBBが表示されません。

原因分かりますでしょうか?

HTML

1<head> 2<!-- AAA --> 3<th:block th:fragment="metas"> 4<!-- BBB --> 5 <th:block th:if="${item.itemInfo != null}"> 6 <meta name="robots" content="noindex"> 7 </th:block> 8</th:block> 9<!-- CCC --> 10</head>

フラグメントのことが、まだ理解できていないため
これも教えていただけると助かります

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/03/21 02:12 編集

タイトルには要件を記載してください。タグにある内容だけ書いてあっても要件は伝わりません。 あと、 最後二行のただし書きはないほうがアドバイスを得やすくなると思います。要件とは関係ありませんし、「この人めんどくさそう」という印象を与えて逆に避けられます。 初心者云々は初心者アイコンがついてるので十分です。 それなら分からないなりに調べたことを簡単にでも記載してもらった方が答えやすくなります。
m.ts10806

2020/03/21 06:06 編集

もう一点確認です。 itemに何が入ってくるのか提示されてないので答えようがない部分はありますが、fragmentの中でifの外は出力されますか? →意味を理解しました。(できれば「HTMLのコメントは」と誰でも伝わるように現象をそのまま書いてほしかったかな・・・)
guest

回答1

0

ベストアンサー

フラグメント

ドキュメント(日本語訳)も確認しつつ、自分で色々書いて失敗してみるのが最も身に付くやり方と思います。
8.1 テンプレートフラグメントのインクルード

ちなみに「fragment」は日本語で「断片」です。
使い方としては冒頭にある説明が最も端的で分かりやすいと思います。

フラグメントの定義と参照

他のテンプレートのフラグメントを別のテンプレートにインクルードしたいという場合がよくあります。フッターやヘッダー、メニューなどです。

例文もありますね。
「断片に名前をつけておき、別のテンプレートで適宜使いたい場所で読み込ませる」という使い方になります。
発想次第で様々な使い方ができると思います。
(ドキュメントのサンプルコードは私は分かりやすいと思いました)


あとは「表示されない」というテンプレートで正しく使えているかどうかの話になると思います。
うろ覚えで申し訳ないですが(手元にすぐ試せる環境がないので)、フラグメントの特性故、
ブロックの中身だけを読み込むはずなので、たとえ<head></head>が出力されていたとしても、
それはフラグメントに記載がある情報ではなく、もとのテンプレートのものが出力されていると考えても良いかもしれません。
(どのように使っているかコード提示されてないので何とも言えませんが)


「metaが出力されない」という場合
item.itemInfo != nullを満たしていなければ、当然そのブロック自体は出力対象とはなりませんから、何も出力されないというのは正しいとなります。
itemやitem.itemInfoが想定通りの情報が渡ってきているかデバッグしてみてください。

投稿2020/03/21 03:09

編集2020/03/21 06:07
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問