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

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

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

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

Spring

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

Thymeleaf

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

6046閲覧

thymeleafの属性がHTMLで認識されない

KazukiMaeda

総合スコア12

Java

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

Spring

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

Thymeleaf

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/04/09 08:54

前提・実現したいこと

JavaのSpringを勉強中です。
テンプレートにthymeleafを使用して、HTMLを動的に書き換えようとしています。

発生している問題

テンプレートにthymeleafを用いて、HTMLを動的に書き換えることを試しているのですが、
thymeleafのth属性からHTMLをレンダリングしてくれない箇所があり、困っております。
初歩的な質問ですが、構文ミスや調査方法などご教授いただければと思います。

該当のソースコード

作成したソースは下記です。

HTML

1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4 <meta charset="UTF-8"> 5 <link th:href="@{/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css}" rel="stylesheet" /> 6 <script th:src="@{/webjars/jquery/1.11.1/jquery.min.js}"></script> 7 <script th:src="@{/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js}"></script > 8<title>Login</title> 9</head> 10<body class="text-center"> 11 <h1>Login</h1> 12 <form method="post" action="/login"> 13 <label>ユーザー ID</label> 14 <input type="text" /><br /> 15 <br /> 16 <label>パスワード</label> 17 <input type="password" /><br /> 18 <br /> 19 <button class="btn btn-primary" type="submit">ログイン</button > 20 </form> 21 <br /> 22 <a th:href="@{/signup}">ユーザー新規登録はこちら</a> 23</body> 24</html>

これをブラウザで読み込むと下記のSourceとなります

html

1<!DOCTYPE html> 2<html> 3<head> 4 <meta charset="UTF-8"> 5 <link href="/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css" rel="stylesheet" /> 6 <script src="/webjars/jquery/1.11.1/jquery.min.js"></script> 7 <script src="/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js"></script > 8<title>Login</title> 9</head> 10<body class="text-center"> 11 <h1>Login</h1> 12 <form method="post" action="/login"> 13 <label>ユーザー ID</label> 14 <input type="text" /><br /> 15 <br /> 16 <label>パスワード</label> 17 <input type="password" /><br /> 18 <br /> 19 <button class="btn btn-primary" type="submit">ログイン</button > 20 </form> 21 <br /> 22 <a th:href="@{/signup}">ユーザー新規登録はこちら</a> 23</body> 24</html>

headタグ内のth属性は認識されているのですが、body内のth属性は原文のままとなっています。

試したこと

th属性を外して普通のaタグとして記述すればリンクを張ることができました。

補足情報(FW/ツールのバージョンなど)

build.gradleのdependenciesも記載します

java

1dependencies { 2 implementation 'org.springframework.boot:spring-boot-starter-jdbc' 3 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 4 implementation 'org.springframework.boot:spring-boot-starter-validation' 5 implementation 'org.springframework.boot:spring-boot-starter-web' 6 compileOnly 'org.projectlombok:lombok' 7 runtimeOnly 'org.springframework.boot:spring-boot-devtools' 8 runtimeOnly 'com.h2database:h2' 9 annotationProcessor 'org.projectlombok:lombok' 10 providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' 11 testImplementation 'org.springframework.boot:spring-boot-starter-test' 12 compile 'org.webjars:jquery:1.11.1' 13 compile 'org.webjars:bootstrap:3.3.7' 14} 15

External Librariesに格納されているthymeleafのバージョンは3.0.11でした。

宜しくお願いします。

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

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

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

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

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

guest

回答2

0

7行目:

<script th:src="@{/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js}"></script >

閉じタグが正しくない(scriptの後に半角スペースが入っている)ので、変換できなくなってますね。

※なかなか見つけにくいところです

投稿2019/04/09 10:14

A-pZ

総合スコア12011

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

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

0

自己解決

こちら、jarを削除して再度buildしたら解消しました。

投稿2019/04/09 10:07

KazukiMaeda

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問