前提・実現したいこと
DB内の情報を検索して一覧として表示する機能をSpring data jpaで実装したいのですが、
下記のソースコードでは下記のようなエラーとなり検索ができないです。
解決方法のわかる方がいらっしゃったら教えて頂きたいです。
発生している問題・エラーメッセージ
2021-03-21 16:10:45.789 WARN 12680 --- [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'name' is not present]
該当のソースコード
index
1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3 4<head> 5<meta charset="UTF-8"> 6<title>社員名簿</title> 7<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" /> 8<link rel="stylesheet" href="/app.css" /> 9</head> 10 11<body> 12 13 <h1 class="header">社員名簿</h1> 14 15 <div> 16 <div> 17 <form action="/namelist/search" th:object="${namelist}" method="GET" align="center"> 18 <p>名前:<input type="text" th:value="${name}"></p> 19 <p>役職:<input type="text"></p> 20 <p>支店:<input type="text"></p> 21 <div class="button"> 22 <input type="submit" value="検索"> 23 <input type="button" onclick="location.href='/namelist' "value="クリア"> 24 </div> 25 </form> 26 </div> 27 <br/> 28 <table align="center" class="table table-striped"> 29 <thead> 30 <tr> 31 <th>社員ID</th> 32 <th>名前</th> 33 <th>役職</th> 34 <th>支店</th> 35 <th>電話番号</th> 36 <th>メールアドレス</th> 37 <th></th> 38 </tr> 39 </thead> 40 <tbody> 41 <tr th:each="namelist:${namelist}" th:object="${namelist}"> 42 <td th:text="*{id}"></td> 43 <td th:text="*{name}"></td> 44 <td th:text="*{position}"></td> 45 <td th:text="*{branch}"></td> 46 <td th:text="*{tell}"></td> 47 <td th:text="*{address}"></td> 48 <td> 49 <form th:action="@{/namelist/edit/{id}(id=*{id})}" th:method="post"> 50 <input type="submit" value="編集"> 51 </form> 52 </td> 53 </tr> 54 </tbody> 55 </table> 56 <div class="button"> 57 <input type="button" onclick="location.href='/namelist/nameadd' "value="名前を追加"> 58 </div> 59 </div> 60 61</body> 62</html>
Controller
1 @GetMapping("/namelist/search") 2 public String search(@RequestParam String name, 3 Model model) { 4 List<entity> namelist = Repository.findByName(name); 5 model.addAttribute("namelist", namelist); 6 return "index"; 7 }
Repository
1@Repository 2public interface repository extends JpaRepository<entity, Long>{ 3 4 List<entity> findByName(String name); 5 6}
Entity
1package com.practice; 2 3import javax.persistence.Column; 4import javax.persistence.Entity; 5import javax.persistence.Id; 6import javax.persistence.Table; 7 8@Entity 9@Table(name = "namelist") 10public class entity { 11 12 @Id 13 @Column(name = "id") 14 private Long id; 15 16 @Column(name = "name") 17 private String name; 18 19 @Column(name = "position") 20 private String position; 21 22 @Column(name = "branch") 23 private String branch; 24 25 @Column(name = "tell") 26 private String tell; 27 28 @Column(name = "address") 29 private String address; 30 31 public entity() { 32 } 33 34 public entity(Long id, 35 String name, 36 String position, 37 String branch, 38 String tell, 39 String address) { 40 this.id = id; 41 this.name = name; 42 this.position = position; 43 this.branch = branch; 44 this.tell = tell; 45 this.address = address; 46 } 47 48 public entity(String name) { 49 this.name = name; 50 } 51 52 public Long getId() { 53 return id; 54 } 55 56 public void setId(Long id) { 57 this.id = id; 58 } 59 60 public String getName() { 61 return name; 62 } 63 64 public void setName(String name) { 65 this.name = name; 66 } 67 68 public String getPosition() { 69 return position; 70 } 71 72 public void setPosition(String position) { 73 this.position = position; 74 } 75 76 public String getBranch() { 77 return branch; 78 } 79 80 public void setBranch(String branch) { 81 this.branch = branch; 82 } 83 84 public String getTell() { 85 return tell; 86 } 87 88 public void setTell(String tell) { 89 this.tell = tell; 90 } 91 92 public String getAddress() { 93 return address; 94 } 95 96 public void setAddress(String address) { 97 this.address = address; 98 } 99 100} 101 102```__イタリックテキスト__
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/21 11:16
2021/03/21 11:35