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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

0回答

619閲覧

Request method 'POST' not supported リクエストメソッド「POST」はサポートされていません

rikuym_14

総合スコア0

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2022/06/18 16:37

スプリング解体新書(6章)を使って勉強をしているのですが、ユーザー登録画面の入力内容をログ出力したいのですがRequest method 'POST' not supportedというエラーが出てしまいます。
イメージ説明
サンプル資料と見比べてもコードで間違ってるところが見当たりません。
色々検索して試してみましたが変わらずエラーが出てしまいます。
何が悪いのか教えて頂きたいです。

1. UserApplicationService.java

package com.example.demo.application.service; import java.util.LinkedHashMap; import java.util.Locale; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.stereotype.Service; @Service public class UserApplicationService { @Autowired private MessageSource messageSource; /** 性別のMapを生成する */ public Map<String, Integer> getGenderMap(Locale locale) { Map<String, Integer> genderMap = new LinkedHashMap<>(); String male = messageSource.getMessage("male", null, locale); String female = messageSource.getMessage("female", null, locale); genderMap.put(male, 1); genderMap.put(female, 2); return genderMap; } }

2. LoginController.java

package com.example.demo.contoroller.java; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class LoginController { /** ログイン画面を表示 */ @GetMapping("/login") public String getLogin() { return "login/login"; } }

**3.SignupController.java **

package com.example.demo.contoroller.java; import java.util.Locale; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import com.example.demo.application.service.UserApplicationService; import com.example.demo.form.SignupForm; import lombok.extern.slf4j.Slf4j; @Controller @RequestMapping("/user") @Slf4j public class SignupController { @Autowired private UserApplicationService userApplicationService; /** ユーザー登録画面を表示 */ @GetMapping("/signup") public String getSignup(Model model, Locale locale, @ModelAttribute SignupForm form) { // 性別を取得 Map<String, Integer> genderMap = userApplicationService.getGenderMap(locale); model.addAttribute("genderMap", genderMap); // ユーザー登録画面に遷移 return "user/signup"; } /** ユーザー登録処理 */ @PostMapping("/signup") public String postSignup(@ModelAttribute SignupForm form) { log.info(form.toString()); // ログイン画面にリダイレクト return "redirect:/login"; } }

4. SignupForm.java

package com.example.demo.form; import java.util.Date; import org.springframework.format.annotation.DateTimeFormat; import lombok.Data; @Data public class SignupForm { private String userId; private String password; private String userName; @DateTimeFormat(pattern = "yyyy/MM/dd") private Date birthday; private Integer age; private Integer gender; }

5. signup.html

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"></meta> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- CSS読込 --> <link rel="stylesheet" th:href="@{/webjars/bootstrap/css/bootstrap.min.css}"> <link rel="stylesheet" th:href="@{/css/user/signup.css}"> <!-- JS読込 --> <script th:src="@{/webjars/jquery/jquery.min.js}" defer></script> <script th:src="@{/webjars/bootstrap/js/bootstrap.min.js}" defer></script> <title th:text="#{user.signup.title}"></title> </head> <body class="bg-light"> <form id="signup-form" method="post" action="/user/signup" class="form-signup" th:object="${signupForm}"> <h1 class="text-center" th:text="#{user.signup.title}"></h1> <!-- ユーザーID --> <div class="form-group"> <label for="userId" th:text="#{userId}"></label> <input type="text" class="form-control" th:field="*{userId}"/> </div> <!-- パスワード --> <div class="form-group"> <label for="password" th:text="#{password}"></label> <input type="text" class="form-control" th:field="*{password}"/> </div> <!-- ユーザー名 --> <div class="form-group"> <label for="userName" th:text="#{userName}"></label> <input type="text" class="form-control" th:field="*{userName}"/> </div> <!-- 誕生日 --> <div class="form-group"> <label for="birthday" th:text="#{birthday}"></label> <input type="text" class="form-control" placeholder="yyyy/MM/dd" th:field="*{birthday}"/> </div> <!-- 年齢 --> <div class="form-group"> <label for="age" th:text="#{age}"></label> <input type="text" class="form-control" th:field="*{age}"/> </div> <!-- 性別 --> <div class="form-group"> <div th:each="item : ${genderMap}" class="form-check-inline"> <input type="radio" class="form-check-input" th:value="${item.value}" th:field="*{gender}"/> <label class="form-check-label" th:text="${item.key}"></label> </div> </div> <!-- 登録ボタン --> <input type="submit" th:value="#{user.signup.btn}" class="btn btn-primary w-100 mt-3" /> </form> </body> </html>

よろしくお願いします。

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

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

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

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

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

ho-ta-te

2022/06/19 09:02

どのようなURLを入力して実行すればよいでしょうか? 提示されたソースで環境構築し、試しに以下の手順で実行してみましたが再現しませんでした。 ①http://localhost:8080/signup.html で実行 ②適当に入力して送信ボタンをクリック ③404 NOT FUND ちなみに、ログ自体は出力されましたが値の受け渡しができていないようでした。 SignupForm(userId=null, password=null, userName=null, birthday=null, age=null, gender=null)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問