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

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

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

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

Thymeleaf

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

HTML

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

Spring Boot

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

Q&A

解決済

1回答

363閲覧

index.htmlから画面遷移できません。spring boot + Thymeleaf + vscode

ganbaritai__me

総合スコア1

Java

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

Thymeleaf

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

HTML

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

Spring Boot

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

0グッド

0クリップ

投稿2024/03/08 13:02

編集2024/03/08 19:52

実現したいこと

index.htmlからtemplates/01/home.htmlへ遷移したいです。
大変情けないのですがご教示頂けますでしょうか。

発生している問題・分からないこと

Springが指定されたパスに対応する静的ファイルを見つけられなかった旨のエラーメッセージが表示されています。

This application has no configured error view, so you are seeing this as a fallback. Sat Mar 09 04:50:44 JST 2024 [51a5dce7-6] There was an unexpected error (type=Not Found, status=404). No static resource 01/home.html. org.springframework.web.reactive.resource.NoResourceFoundException: 404 NOT_FOUND "No static resource 01/home.html." at org.springframework.web.reactive.resource.ResourceWebHandler.lambda$handle$1(ResourceWebHandler.java:431) Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below: Error has been observed at the following site(s): *__checkpoint ⇢ HTTP GET "/01/home.html" [ExceptionHandlingWebHandler]

該当のソースコード

application.properties

1spring.thymeleaf.prefix=classpath:/templates/

com/***/sample/DemoController.java

1package com.example.sample.controller; 2 3import org.springframework.stereotype.Controller; 4import org.springframework.web.bind.annotation.RequestMapping; 5 6@Controller 7public class DemoController { 8 9 @RequestMapping("/") 10 public String sample() { 11 return "index"; // index.html を表示 12 } 13 14 @RequestMapping("/01") 15 public String home() { 16 return "home"; // 01/home.html を表示 17 } 18}
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <title>トップ画面</title> </head> <body> <h1>Hello World!!</h1> <!-- リンク先のパス --> <a th:href="@{/01/home.html}">home.html</a> </body> </html>

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

html

1<body> 2 <h1>Hello World!!</h1> 3 <!-- リンク先のパス --> 4 <a th:href="@{/01/home.html}">home.html</a> 5</body>

上記のリンク先のパスを指定する部分が間違えていると思うのですが、何故がリンクできません。
対話型最終的に対話型AIも用いてみたのですが、解消できませんでした。

補足

特になし

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

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

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

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

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

jimbe

2024/03/08 17:28

>Springが指定されたパスに対応する静的ファイルを見つけられなかった旨のエラーメッセージが表示されています そのエラーを質問に追加して戴けますか。
ganbaritai__me

2024/03/08 19:49

エラーメッセージを追記致しました。 ご確認宜しくお願い致します。
guest

回答1

0

ベストアンサー

ご提示頂いた以下のControllerから、URLは「localhost:8080/01」、htmlは「templates/01/home.html」で動くものと仮定させて頂きます。

java

1@RequestMapping("/01") 2public String home() { 3 return "home"; // 01/home.html を表示 4}

修正方法

DemoController.javaのreturn部分を、表示したいhtmlを返すように修正します。

java

1@RequestMapping("/01") 2public String home() { 3 return "01/home"; // 01/home(.html) を表示 4}

templates/index.htmlのリンク先を、Mappingしている「/01」に修正します。

html

1<!-- リンク先のパス --> 2<a th:href="@{/01}">home.html</a>

これで、ファイルがtemplates/01/home.htmlにあれば表示できます。

なお、templatesには標準でパスが通っているため、以下は無くても動作します。

properties

1# spring.thymeleaf.prefix=classpath:/templates/

投稿2024/03/08 23:19

編集2024/03/08 23:26
KT001

総合スコア618

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

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

ganbaritai__me

2024/03/08 23:36

大変たすかりました!ありがとうございます! やっと次のステップへ進められます。 propatiesについても試行錯誤している中で指定していた物だった為当該部分を削除致しました。
KT001

2024/03/09 00:51

解決して良かったです! AIだと少し古いコードを回答してくるのですが、今だと@GetMappingの方が良いコードとされているので、ご参考までに記載させて頂きます。 @RequestMapping("/01") → @GetMapping("/01") これはEclipseだと警告になるので気付くのですが、公式のJavaDocなどにも記載されています。 「注意 : このアノテーション(@RequestMapping)は...@GetMapping、@PostMapping...のいずれかを使用することを優先します(使用することを好みます)」(公式の英語版では「prefer=好む」と記載されています) https://spring.pleiades.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問