実現したいこと
コントローラクラスの@PostMappingが効くようにしたいです。よろしくお願いします。
前提
eclipseでSpringBootの学習をしています。
hello.htmlというファイルのformタグと@PostMappinとで値を受け取って、response.htmlというページに遷移するという練習をしています。
@PostMappinとで値を受け取って、ページ遷移させる@PostMappingのメソッドが全く動きません。
(コンソールに、@PostMappingSystem.out.println("受け取ったよ");が出てきていないことからそう判断いたしました)
エラーはなく、formタグに入力して送信しても元のページにリロードされるという動作になってしまっています。
form送信後の画面
該当のソースコード
HelloController.java
java
1package com.example.hello;2 3import org.springframework.stereotype.Controller;4import org.springframework.ui.Model;5import org.springframework.web.bind.annotation.PostMapping;6import org.springframework.web.bind.annotation.RequestMapping;7import org.springframework.web.bind.annotation.RequestParam;8 9@Controller // アノテーションを使って、Controllerクラスであることを宣言10public class HelloController {11 12 @RequestMapping(value="/hello") // 「/index」にリクエストが来たときに呼び出されるメソッドを作成13 public String getHello() {14 return "hello";15 }16 17 @PostMapping("/hello")18 public String postRequest(@RequestParam(name="text1") String str,Model m) {19 20 m.addAttribute("sample",str);21 System.out.println("受け取ったよ");22 return "hello/response";23 }24 25}26
hello.html
html
1<html>2<head>3<meta charset="UTF-8">4<title>EclipseでSpring Bootの開発環境を構築!!</title>5</head>6<body>7 <h1>Hello, Spring Boot!!</h1>8 <form>9 入力:<input type="text" name="text1">10 <input type="submit" value="送信">11 </form>12</body>13</html>
response.html
html
1<!DOCTYPE html>2<html xmlns:th="http://www.thymeleaf.org">3<head>4<meta charset="UTF-8">5<title>responsesample</title>6</head>7<body>8 <h1>helloresponse</h1>9 <p th:text="${sample}"></p>10</body>11</html>
補足情報(FW/ツールのバージョンなど)
javaバージョン17
Spring Bootバージョン 3.2.5
試したこと
Spring Bootバージョン 3.X以上はjava21推奨しているとの情報をネットで得たので、javaバージョン21にて別のプロジェクトを作って同じことをやって試しましたがそれでも@PostMappingが動きませんでした
0 コメント