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

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

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

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

Spring

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

1回答

5570閲覧

テンプレートファイルが表示出来ない

aae_11

総合スコア178

Java

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

Spring

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

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

1グッド

0クリップ

投稿2020/04/11 03:55

編集2020/04/11 23:36

テンプレートファイルが読み込めないのか、画面に「index.html」ファイルの内容が表示出来ません。
以下はコントローラークラスである「HelloController.java」です。

package com.test.springboot; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController{ @RequestMapping("/") public String index(){ return "index"; } }

以下は、設定ファイルである「pom.xml」です

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.test.springboot</groupId> <artifactId>MyBootApp</artifactId> <version>0.0.1-SNAPSHOT</version> <name>MyBootApp</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

以下は、テンプレートファイルである「index.html」です

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>top page</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style> h1{ font-size:18pt; font-weight: bold; color:gray;} body{ font-size:13pt; color:gray; margin:5px 25px; } </style> </head> <body> <h1>Helo page</h1> <p class="msg">this is Thymeleaf sample page.</p> </body> </html>

「index.html」は、プロジェクトフォルダ内の「src」フォルダ内の「main」フォルダ内の「resources」フォルダ内の「templates」フォルダ内に作成しました。
イメージ説明

実行は、ターミナルから、mvn spring-boot:runとしました。
アクセスは「http://localhost:8080」として、ブラウザからアクセスしましたのですが、結果は以下のように表示されました。
イメージ説明
テンプレートファイル「index.html」が表示出来ない原因が分からない為、ご助言頂けたらありがたいです

追記です

@SpringBootApplicationというアノテーションが付いているクラスのソースコード全文を質問に追記してください。

以下は、MybootAppApplication.javaになります。

package com.test.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MybootAppApplication { public static void main(String[] args) { SpringApplication.run(MybootAppApplication.class, args); } }

プロジェクトのsrc/main/java以下を展開した状態のスクリーンショットを撮って掲載しなおしてください。

こちらですが、以下の画像となります。ご確認の程、よろしくお願いします。
イメージ説明

※画像のフォルダ名及び、パッケージ名の「test」は質問に載せる為、一時的につけている名前です。
追記2
重複しているフォルダ、「com/test/springboot」を削除した結果は以下になります。
イメージ説明

ruuuu👍を押しています

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

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

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

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

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

m.ts10806

2020/04/11 04:23

ブラウザ上から実行しているなら表示されるのはテンプレートファイル自体ではなく、あくまで所定の処理に従って処理された結果のHTMLコードになりますが(どの言語でも同じ) 「テンプレートファイルを表示させたい」が目的なら「ブラウザにドロップすればいいのでは。ただしそれはSpringの使い方ではない」が答えになります。 見た感じrunしただけでどこにどのようにアクセスして何が出たのか記載しないことには、何も解決しないですよ。 問題・課題が明記されてません。 質問テンプレートからやり直しては。
m.ts10806

2020/04/11 08:22 編集

結局「何が起きてるのか」は頑として書かれないわけですね。 回答者がコードの次にほしい情報なのに。 https://teratail.com/help/question-tips#questionTips3-4 今回のようなケースで「表示できない」はプログラムの世界では「起きてること」ではないですよ。HTML,CSSでレイアウト組んでて「表示できない」なら分かるけど、そうじゃないですよね。 190以上も質問してきて質問力が育たないのは何故でしょう。疑問です。
rubytomato

2020/04/11 10:32

HelloControllerクラスのパッケージの位置がおかしいのかもしれません。 確認するために@SpringBootApplicationというアノテーションが付いているクラスのソースコード全文を質問に追記してください。 それと、プロジェクトのsrc/main/java以下を展開した状態のスクリーンショットを撮って掲載しなおしてください。
guest

回答1

0

追記ありがとうございました。
貼付して頂いたプロジェクトのスクリーンショットとJavaソースファイルのpackage文を見ると、不整合を起こしているように思います。

スクリーンショットのパッケージ階層は
com.test.springboot.com.test.springboot
とあり

Javaソースファイルのpackage文では
com.test.springboot
とあります。

スクリーンショットのパッケージ階層が正であるなら、Javaソースファイルのpackage文を修正し、
Javaソースファイルのpackage文が正であるなら、プロジェクトのパッケージ階層を修正する、ということになると思いますが、どちらにあわせるかはご自身でご判断ください。

また、もしかすると上記の修正でプロジェクトのビルドパスも見直さないといけないかもしれませんが、VSCodeでの設定方法はわかりませんので、この点はお答えできません。

投稿2020/04/11 14:44

rubytomato

総合スコア1752

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

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

aae_11

2020/04/11 23:23

ご回答ありがとうございます。 ただ今見直してみたのですが、スクリーンショットのパッケージ階層は「com.test.springboot.com.test」となっており、「springboot」フォルダ内は空になっていました。 自分でも、階層が「com/test」は余計なのではないかと思っていました為、こちらを削除し、ソースファイルに記述したパッケージ階層に合わ、再度ビルドしアクセスしてみたいと思います。
aae_11

2020/04/11 23:29

あ、すみません。今再度、vscodeの方の階層を見直したのですが、「com/test/springboot」フォルダは確かに存在していたのですが、その中に、ソースファイルは無く、実際には「com/test/springboot」フォルダ内にHelloController.java、MybootAppApplication.javaが存在していました。 自分も階層的には、「com/test/springboot」が重複していた為、勘違いしていたのですが、実際には、ソースファイルが存在するパッケージは「com/test/springboot」となっておりました。
aae_11

2020/04/11 23:39 編集

念の為、重複しているフォルダを削除し、「mvn spring-boot:run」として、ブラウザからアクセスしてみましたが、やはり同様のエラーページが表示されてしまいました。
aae_11

2020/04/12 02:49

STSで再度プロジェクトを作り直しましたら、とりあえずは、テンプレートファイルの中身を表示させることが出来ました。 もしかしたら、プロジェクト作成の段階から少し、おかしくなってしまっていたのかもしれないですね...
rubytomato

2020/04/12 04:58

STSで作成したプロジェクトをVSCodeで更新したらページが表示されなくなったのか、 そもそもSTSで作成したプロジェクトのページが表示されなかったのかで原因は違うと思いますが、 とりあえず解決できたのなら自己解決でクローズしてください。 もし、同一のプロジェクトをSTSとVSCodeで更新すると問題が起きるのか、起きたとしてその場合の解決法を知りたいのであれば、他の方から回答が付くのを待ってみてもいいとおもいます。その場合はプロジェクト作成からHelloControllerクラスの実装までの手順を追記しておくといいとおもいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問