前提・実現したいこと
SpringBootにてWebアプリを作成しております。
ログイン画面(login.html)とユーザー登録画面(signup.html)を作成している段階で、login.htmlにアクセスgetMappingを用いてアクセスしたいです。
発生している問題・エラーメッセージ
しかし、「http://localhost:8080/login」にアクセスすると作成したlogin.htmlにアクセスできず404エラーが出力されてしまいます。
エラーメッセージ 「Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. There was an unexpected error (type=Not Found, status=404).」
該当のソースコード
LoginController
1 2//LoginController.javaのコード 3 4package com.example.controller; 5 6import org.springframework.stereotype.Controller; 7import org.springframework.web.bind.annotation.GetMapping; 8import org.springframework.web.bind.annotation.RequestMapping; 9import org.springframework.web.bind.annotation.RequestMethod; 10 11@Controller 12public class LoginController { 13 14 15 @GetMapping("/login") 16 public String getLogin() { 17 return "login/login"; 18 } 19} 20
login
1 2<!-- login.htmlのコード --> 3 4<!DOCTYPE html> 5<html xmlns:th="http://www.thymeleaf.org"> 6<head> 7<meta charset="UTF-8"> 8<title>ログイン画面</title> 9<!-- name属性はcontent属性が持つ値と関連づけられる --> 10<!-- viewportはビューポートの初期サイズに関する助言を与える モバイル端末のみで使用 --> 11<!-- ビューポートはPCグラフィックの中で現在表示されている領域を表す --> 12<!-- <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"> --> 13 14<!-- CSS読み込み --> 15<!-- <link rel="stylesheet" th:href="@{/webjars/bootstrap/4.5.3/css/bootstrap.min.css}"> --> 16<!-- <link rel="stylesheet" th:href="@{/css/login/login.css}"> --> 17 18<!-- JS読み込み --> 19<!-- <script th:src="@{/webjars/jquery/3.5.1/jquery.min.js}" defer></script> --> 20<!-- <script th:src="@{/webjars/bootstrap/4.5.3/js/bootstrap.min.js}" defer></script> --> 21 22</head> 23<body class="bg-light"> 24<div class="text-center"> 25 <form method="post" th:action="@{/login}" class="form-login"> 26 <h2>ログイン</h2> 27 <div class="form-group"> 28 <label for="userId" class="sr-only">userId</label> 29 <input type="text" class="form-control" placeholder="ユーザーID" name="userId"/> 30 </div> 31 32 <div class="form-group"> 33 <label for="password" class="sr-only">password</label> 34 <input type="text" class="form-control" placeholder="パスワード" name="password"/> 35 </div> 36 <input type="submit" value="ログイン" class="btn btn-primary" /> 37 </form> 38 <a th:href="@{/user/signup}">新規登録はこちら</a> 39</div> 40</body> 41</html>
SignupController
1 2//SignupController.javaのコード 3package com.example.controller; 4 5import java.util.Map; 6 7import org.springframework.beans.factory.annotation.Autowired; 8import org.springframework.stereotype.Controller; 9import org.springframework.ui.Model; 10import org.springframework.web.bind.annotation.GetMapping; 11import org.springframework.web.bind.annotation.PostMapping; 12import org.springframework.web.bind.annotation.RequestMapping; 13 14import com.example.application.service.UserApplicationService; 15 16@Controller 17@RequestMapping("/user") 18//URLのプリフィックス(接頭辞)として利用できる、クラスではRequestMapping、メソッドでは@GetMapping 19public class SignupController { 20 21 @Autowired 22 private UserApplicationService userApplicationService; 23 24 //RequestMappingでGetMappingを代用することも可能 25 //その場合は@RequestMapping(value="/signup",method=RequestMethod.GET) 26 @GetMapping("/signup") 27 public String getSignup(Model model) { 28 //性別を取得 29 Map<String,Integer> genderMap = userApplicationService.getGenderMap(); 30 31 model.addAttribute("genderMap",genderMap); 32 33 //ユーザー登録画面へ遷移 34 return "user/signup"; 35 } 36 37 //ユーザー登録処理 38 @PostMapping("/signup") 39 public String postSignup() { 40 //リダイレクトしている 41 //リダイレクトとは、ウェブサイト閲覧にて指定したウェブサイトから自動的に他のウェブページに転送されること 42 //ここでは、postメソッドによりsignupに一度飛ぶがすぐにloginページを返却される 43 return "redirect:login"; 44 } 45 46} 47
試したこと
実行したところ、実行時エラーやコンパイルエラーは発生しておりません。
補足情報(FW/ツールのバージョンなど)
何か考えられる原因がございましたら教えてほしいです!!!!
回答2件
あなたの回答
tips
プレビュー