前提・実現したいこと
クエリパラメーターでDBの値を渡したい。
直前まではidの値は持っていることをデバッグモードで確認しました。
どうすればnullに変換されないようにできるのでしょうか?
発生している問題・エラーメッセージ
Required URI template variable 'id' for method parameter type Long is present but converted to null (メソッドパラメータタイプLongに必要なURIテンプレート変数 'id'は存在しますが、nullに変換されます )
該当のソースコード
java
1package com.example.demo.controller; 2 3import org.springframework.beans.factory.annotation.Autowired; 4import org.springframework.context.annotation.Scope; 5import org.springframework.stereotype.Controller; 6import org.springframework.ui.Model; 7import org.springframework.validation.BindingResult; 8import org.springframework.validation.annotation.Validated; 9import org.springframework.web.bind.annotation.GetMapping; 10import org.springframework.web.bind.annotation.PathVariable; 11import org.springframework.web.bind.annotation.PostMapping; 12 13import com.example.demo.db.InputForm; 14import com.example.demo.repositry.CommentRepository; 15import com.example.demo.repositry.DatabaseRepository; 16 17@Scope("session") 18@Controller 19public class ForumController { 20 21 @Autowired 22 private DatabaseRepository repository; 23 24 @Autowired 25 private CommentRepository commentRepo; 26 27 @GetMapping("/") 28 public String getHome(InputForm inputForm,Model model) { 29 30 Iterable<InputForm> inputList = repository.findAll(); 31 32 33 model.addAttribute("inputList", inputList); 34 35 return "/home"; 36 } 37 38 @PostMapping("/createThread") 39 public String createThread(@Validated InputForm inputForm, BindingResult error, Model model) { 40 if (error.hasErrors()) { 41 Iterable<InputForm> inputList = repository.findAll(); 42 model.addAttribute("inputList", inputList); 43 return "/home"; 44 } 45 46 repository.saveAndFlush(inputForm); 47 48 return "/relay"; 49 } 50 51 //inputformから貰ったIDからcommentRepoのthreadIDと一致するコメントを表示する 52 @GetMapping("/{id}(id=*{id})")***この部分です*** 53 public String getThread(@PathVariable("id") Long id, InputForm inputForm) { 54 System.out.println("aa"); 55 return "/home"; 56 57 } 58}
html
1<!DOCTYPE html> 2<html lang="ja" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"> 3 4<head> 5 <link rel="stylesheet" th:href="@{/style.css}"> 6 <br> 7 <title>みかんふぉーらむ</title> 8 <h1 class=title>みかんふぉーらむ</h1> 9 <br> 10</head> 11 12<body> 13 14 <form method="post" th:action="@{/createThread}" th:object="${inputForm}"> 15 <input type="text" th:field="*{threadName}" class="threadForm" /> <span th:if="${#fields.hasErrors('threadName')}" th:errors="*{threadName}" 16 class="error"></span><br> 17 <input type="submit" value="すれっどをつくる" class="threadCreate" onclick="reset"/> 18 </form> 19 20</body> 21<br> 22<br> 23 24<body th:object="${inputList}"> 25<p class=threadList>すれっどいちらん</p> 26<div class="threadList"> 27<tbody th:if="${inputList.size()>=1}"> 28 <tr th:each="inputList:${inputList}" th:object="${inputList}"> 29 <a th:text="*{threadName}" class="scroll" th:href="@{'/{id}(id=*{id})'}"></a><br> ****この部分です***** 30 </tr> 31</tbody> 32</div> 33 34</body> 35 36</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。