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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring

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

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Thymeleaf

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

Q&A

解決済

1回答

1009閲覧

SpringBoot Gradleを利用し、HTML上にデータ出力をしたい

like_mii

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring

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

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Thymeleaf

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

0グッド

0クリップ

投稿2021/12/05 11:22

編集2021/12/06 00:16

解決したいこと

SpringToolSuite4を利用し、DBに格納されたデータ3名分の「id」「名前」「年齢」をHTML上にテーブルの形式で出力したいのですが、th:textにて指定したデータがHTML上に出力されません。
解決方法をご教示頂きたいです。
また、認識が異なるところがございましたらご指摘頂きたいです。

使用している環境は下記の通りです。
・使用しているpc:mac
・SpringToolSuite4
・ビルドツール:Gradle
・DB:MySQL

今回の手順は下記を参考にしました。
URL:https://qiita.com/t-yama-3/items/969825d5c1bc4a16866d
※プロジェクト名のみ「gradle-bulletin-board」に変更しております。

発生している問題・エラー(一部抜粋)

table-header部分のみ表示され、th:textにて指定しているデータが出力されない。(下記の画像のように表示される)
![イイメージ説明

実際にデベロッパーツールを見ても反映されていない。

該当するソースコード

application.properties(パスワードは変更しております)

spring.datasource.url=jdbc:mysql://localhost:3306/gradle spring.datasource.username=manami spring.datasource.password=XXXXXX //パスワードは念の為隠しております spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.sql.init.mode=always spring.sql.init.schema-locations=classpath:schema.sql spring.sql.init.data-locations=classpath:data.sql spring.sql.init.encoding=utf-8

build.gradle

plugins { id 'org.springframework.boot' version '2.5.7' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'mysql:mysql-connector-java' testImplementation 'org.springframework.boot:spring-boot-starter-test' } test { useJUnitPlatform() }

GradleBulletinBoardApplication.java(自動生成されるクラス)

java

1package com.example.demo; 2 3import org.springframework.boot.SpringApplication; 4import org.springframework.boot.autoconfigure.SpringBootApplication; 5 6@SpringBootApplication 7public class GradleBulletinBoardApplication { 8 9 public static void main(String[] args) { 10 SpringApplication.run(GradleBulletinBoardApplication.class, args); 11 } 12 13} 14

schema.sql(テーブル作成)

sql

1USE gradle; 2 3DROP TABLE IF EXISTS test_table; 4 5CREATE TABLE test_table 6(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(100),old INT,PRIMARY KEY(id)); 7

data.sql(挿入するデータ)

sql

1INSERT INTO test_table(name, old) 2VALUES('Taro', 30), ('Jiro', 25),('Saburo', 22);

TestController.java

java

1package com.example.demo; 2 3import java.util.List; 4import java.util.Map; 5 6import org.springframework.beans.factory.annotation.Autowired; 7import org.springframework.jdbc.core.JdbcTemplate; 8import org.springframework.stereotype.Controller; 9import org.springframework.ui.Model; 10import org.springframework.web.bind.annotation.GetMapping; 11import org.springframework.web.bind.annotation.RequestMapping; 12 13@Controller 14@RequestMapping("/") 15public class TestController { 16 17 @Autowired 18 private JdbcTemplate jdbcTemplate; 19 20 @GetMapping("/index") 21 public String index(Model model) { 22 // test_tableの全てのレコードを取得する 23 String sql = "SELECT * FROM test_table"; 24 25 // 変数listにSQL文で取得したデータが代入される 26 List<Map<String, Object>> list = jdbcTemplate.queryForList(sql); 27 28 System.out.println(list); 29 30 // modelオブジェクトのaddAttributeを使ってModelにlistを追加している 31 model.addAttribute("testlist", list); 32 33 // Viewファイルの指定 34 return "index"; 35 } 36} 37

index.html(DBのデータを出力する用)

html

1<!DOCTYPE html> 2<html lang="ja" xmlns:th="http://www.thymeleaf.org"> 3<head> 4<meta charset="UTF-8"> 5<title>Insert title here</title> 6</head> 7<body> 8 <table border="1"> 9 <tr> 10 <th>id</th> 11 <th>name</th> 12 <th>old</th> 13 </tr> 14 <tr th:each="test:${testlist}"> 15 <td th:text="${test.id}"></td> 16 <td th:text="${test.name}"></td> 17 <td th:text="${test.pld}"></td> 18 </tr> 19 </table> 20</body> 21</html>

自分で試したこと

①ターミナルでDB上にテーブルの作成とデータの追加が成功しているか確認。
⇒無事実行できている。

②コントローラーのindexメソッドにてlistにうまくデータが受け渡されているか確認。
⇒コンソールには何も出力されておらず、データの受け渡しがうまく出来ていない?

java

1System.out.println(list);

③HTMLのデベロッパーツールの確認
⇒th:text部分が反映されていない。

④MySQLからPostgreSQLに変更しても同じ結果になったため、DBが問題ではなさそう。

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

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

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

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

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

guest

回答1

0

自己解決

HTMLの${testList}のLが小文字のためうまく反映されていませんでした。

投稿2021/12/06 08:37

like_mii

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問