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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Java

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

Q&A

2回答

4925閲覧

SpringBootでRequestMappingを使ってhtmlを呼び出せない

Kiyonom

総合スコア10

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Java

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

0グッド

0クリップ

投稿2018/10/02 13:10

編集2018/10/03 06:26

前提・実現したいこと

初歩的なことですが、教えていただきたいです。
SpringBootを使って、htmlを表示させたいです。
@Controllerと@RequestMappingを使っています。

マッピングの位置は違っていないはずですが、ファイルが見つからず、表示されません。

発生している問題・エラーメッセージ

http://localhost:8080/をうつと、404が返ってきます。
該当ページがない旨のエラーであると認識しています。

該当のソースコード

特に処理などはないです。

java

1import static org.springframework.web.bind.annotation.RequestMethod.*; 2import org.springframework.stereotype.Controller; 3import org.springframework.web.bind.annotation.RequestMapping; 4 5@Controller 6public class MyBootAppController { 7 @RequestMapping(value = "/", method = { GET, POST }) 8 public String menu() { 9 return "index"; 10 } 11}

index.html

html

1<!DOCTYPE html> 2<html lang="ja" xmlns:th="http://www.thymeleaf.org"> 3<head> 4<meta charset="UTF-8"> 5</head> 6<body> 7Hello World! 8</body> 9</html>

properties

1#============== 2# thymeleaf 3#============== 4 5spring.thymeleaf.mode=HTML 6spring.thymeleaf.cache=false

試したこと

@RequestMappingのカッコの中に
①("/")
②({"/"})
③value=("/")
を入れて試しました。

ソースの階層は下記のとおりです。
イメージ説明

第一歩で躓いてしまいました。
宜しくお願い致します。

追記です

pom

1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 6 <groupId>com.tuyano.springboot</groupId> 7 <artifactId>MyBootApp</artifactId> 8 <version>0.0.1-SNAPSHOT</version> 9 <packaging>jar</packaging> 10 11 <name>MyBootApp</name> 12 <description>sample project for Spring Boot</description> 13 14 <parent> 15 <groupId>org.springframework.boot</groupId> 16 <artifactId>spring-boot-starter-parent</artifactId> 17 <version>2.0.5.RELEASE</version> 18 <relativePath/> <!-- lookup parent from repository --> 19 </parent> 20 21 <properties> 22 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 23 <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 24 <java.version>1.8</java.version> 25 </properties> 26 27 <dependencies> 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-web</artifactId> 31 </dependency> 32 33 <dependency> 34 <groupId>org.springframework.boot</groupId> 35 <artifactId>spring-boot-starter-test</artifactId> 36 <scope>test</scope> 37 </dependency> 38 <dependency> 39 <groupId>org.springframework.boot</groupId> 40 <artifactId>spring-boot-starter-thymeleaf</artifactId> 41 </dependency> 42 </dependencies> 43 44 <build> 45 <plugins> 46 <plugin> 47 <groupId>org.springframework.boot</groupId> 48 <artifactId>spring-boot-maven-plugin</artifactId> 49 </plugin> 50 </plugins> 51 </build> 52 53 54</project> 55

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/10/03 03:30

pom.xml の dependencies 追記
Kiyonom

2018/10/03 05:12

追記しました!
guest

回答2

0

アプリケーションを起動し、ブラウザのアドレスバーに次のように入力してみてください。

text

1http://localhost:8080/

2018/10/03追記

質問文に提示して頂いている内容でほぼ同じアプリケーションを作って実行し、"http://localhost:8080/"にアクセスしてみたところ、ブラウザには”Hello World!”と表示されました。
なので、プログラムや設定ファイルには問題が無いように見えます。

2点ご確認頂きたいことがあります。

  1. 下記のログは私の環境でアプリケーションを起動したときのログの一部です。

このなかの上から3行目が"MyBootAppController.menu()"が"/"にマップされていることを示しています。
Kiyonomさんの環境でも同じログが出力されているかご確認ください。

o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@27216cd: startup date [Wed Oct 03 21:13:53 JST 2018]; root of context hierarchy s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/],methods=[GET || POST]}" onto public java.lang.String com.example.demo.MyBootAppController.menu() s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest) s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
  1. 考えにくいことですがブラウザがエラーページをキャッシュしているということがあるかもしれません。

ブラウザのキャッシュをクリアして再度アクセスしてみてください。
Windows環境でChromeの場合は、Shift + F5キーを同時に押すことでキャッシュをクリアしてリロードできます。

投稿2018/10/02 14:47

編集2018/10/03 12:43
rubytomato

総合スコア1752

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

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

A-pZ

2018/10/02 15:00

そう、localhost/8080/ ではなくて、localhost:8080 ですよね。
Kiyonom

2018/10/03 02:55

ありがとうございます。 試してみましたが、エラーは変わらずでした。
Kiyonom

2018/10/03 02:58

参考にした書籍には、htmlがあるファイル「templates」は、src > main > resourcesの下とありますが、このパスはあっているでしょうか?
rubytomato

2018/10/03 12:29

はい、"src\main\resources\templates"であっていると思います。
guest

0

たしか閉じタグがいるんじゃなかったかな。

<meta charset="UTF-8"/>

投稿2018/10/03 02:16

apo

総合スコア349

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

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

退会済みユーザー

退会済みユーザー

2018/10/03 03:28 編集

thymeleaf 2 まではそうだが thymeleaf 3では問題なくなっっている。 thymeleaf 2でも そのエラーは HTTP STATUS CODE 500 で whitelabel に飛ぶ
apo

2018/10/03 23:52

そうでしたか、失礼しました。
apo

2018/10/03 23:53

同様のプログラムを書いてみましたが、問題なく動いていました。 githubに載せました。相違するところはないでしょうか。 https://github.com/ringo-apo/java_sb_tt
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問