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

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

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

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

Spring Boot

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

Q&A

解決済

2回答

7878閲覧

@RequestParamでうまくname属性が取得できない

taka3344

総合スコア8

Java

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

Spring Boot

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

0グッド

0クリップ

投稿2021/05/12 07:45

編集2021/05/12 07:46

前提・実現したいこと

@RequestParamでname属性を取得したいのですがエラーが出てしまう

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

Required request parameter 'question' for method parameter type String is not present org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter 'question' for method parameter type String is not present

該当のソースコード

@Controller @RequestMapping("/delete") public class DeleteController { @Autowired private QuestionService questionService; @Autowired private AnswerService answerService; @GetMapping String getRegiste(@RequestParam(name = "question") String q, Model model) { int question_id = Integer.parseInt(q); //クエスチョンの取得 Question question = questionService.findId(question_id); List<Answer> listA = answerService.findAnswer(question_id); model.addAttribute("question", question); model.addAttribute("answerList", listA); return "delete"; } @PostMapping String postRegiste(@RequestParam(name = "question", required = false) String q) { System.out.println(q); if (q != null) { int id = Integer.parseInt(q); questionService.delete(id); answerService.delete(id); } return "list"; } }
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" > <head> <meta charset="utf-8" /> <link rel="stylesheet" href="style.css"> <title>タイトル</title> </head> <body> <main> <div class="header-box"> <a th:href="@{/top}"> <input type="button" value="top"> </a> <a th:href="@{/logout}"> <input type="button" value="logout"> </a> </div> <div class="button-box"> <div class="buttonsize-box"> <div class="tyuou"> <div class="questionーbox"> <label class="valign">問題:</label> <textarea class="text-size text-size-h250" rows="10" cols="60" th:text="${question.question}"></textarea> <p> <label>答え:</label> </p> <div th:each="answers, stat : ${answerList}"> <p> <input type="text" name="example" th:value="${answers.answer}" class="text-size"> </p> </div> </div> </div> <div class="center"> <a th:href="@{/list}"> <input type="button" value="戻る"> </a> <form th:action="@{/delete}" method="post"> <input type="submit" value="削除" > <input type="button" name="question" th:value="${question.id}" readonly> </form> </div> </div> </div> </main> </body> </html>

試したこと

・name属性の設定がされていない→指定済み
・valu=nullの可能性→type="button" で可視化し、valu値取得確認済み
null値で帰ってきてしまっているため、パラメーター自体が送信できていない。

切り口がわからないです。
アドバイスよろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

<form th:action="@{/delete}" method="post"> <input type="submit" value="削除" > <input type="hidden" id="question" name="question" th:value="${question.id}" readonly> </form>

に変更することで動きました

投稿2021/05/14 07:17

編集2021/05/17 01:44
taka3344

総合スコア8

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

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

m.ts10806

2021/05/14 07:22

それだと回答として投稿しないほうが良いです。 今と前でのソースコードの差分比較してください。 書いたとおりにしか動かないので、「なぜかなおった」にはなりません。動くには動くための、動かないには動かないなりの 確固たる理由があります。
taka3344

2021/05/17 01:21

了解しました! ありがとうございます。
m.ts10806

2021/05/17 01:33

回答もコードはマークダウンで提示してください。
taka3344

2021/05/17 01:44

回答もマークダウンできたのですね。 ありがとうございました
guest

0

ベストアンサー

なぜbuttonなのか分かりませんが渡す値はtype=hiddenに置いては。

投稿2021/05/12 07:50

m.ts10806

総合スコア80875

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

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

taka3344

2021/05/12 07:56

回答ありがとうございます。 値が取れているのか確認するためにhiddenを外していました。
m.ts10806

2021/05/12 08:01

どういう状況なのか不明です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問