下記URLよりSpringBootを勉強したてのものです。
大項目の4での住所録の作成はエラーが出て調べて作成ができましたが
課題5を行っている最中でエラーが出てきてしまい、ご教示いただきたいです。
https://www.sys-link.jp/technical/SpringBoot/SpringBoot0-0.html
新規追加のボタンを押すとエラーが出てしまいます。
コントローラは前の住所録と同じ作成方法で行っているので
htmlファイルに問題があるのかと考えておりますが、
どこに問題があるのか自分ではわからない状態です。
BbsController.java
1 2 3import java.util.Date; 4import java.util.List; 5 6import org.springframework.beans.factory.annotation.Autowired; 7import org.springframework.stereotype.Controller; 8import org.springframework.transaction.annotation.Transactional; 9import org.springframework.web.bind.annotation.GetMapping; 10import org.springframework.web.bind.annotation.ModelAttribute; 11import org.springframework.web.bind.annotation.PostMapping; 12import org.springframework.web.bind.annotation.RequestParam; 13import org.springframework.web.servlet.ModelAndView; 14 15@Controller 16public class BbsController { 17 @Autowired 18 BbsRepository repos; 19 20 /* 一覧画面(初期画面)への遷移 */ 21 @GetMapping 22 public ModelAndView list() { 23 ModelAndView mav = new ModelAndView(); 24 List<Bbs> list = repos.findAll(); 25 mav.setViewName("users/list"); 26 mav.addObject("data", list); 27 return mav; 28 } 29 30 /* 新規画面への遷移 */ 31 @GetMapping("/add") 32 ModelAndView add() { 33 ModelAndView mav = new ModelAndView(); 34 Bbs data = new Bbs(); 35 mav.addObject("formModel", data); 36 mav.setViewName("users/new"); 37 return mav; 38 } 39 40 /* 編集画面への遷移 */ 41 @GetMapping("/edit") 42 ModelAndView edit(@RequestParam int id) { 43 ModelAndView mav = new ModelAndView(); 44 Bbs data = repos.findById(id); 45 mav.addObject("formModel", data); 46 mav.setViewName("users/new"); 47 return mav; 48 } 49 50 /* 詳細への遷移 */ 51 @GetMapping("/show") 52 ModelAndView show(@RequestParam int id) { 53 ModelAndView mav = new ModelAndView(); 54 Bbs data = repos.findById(id); 55 mav.addObject("formModel", data); 56 mav.setViewName("users/show"); 57 return mav; 58 } 59 60 /* 更新処理 */ 61 @PostMapping() 62 @Transactional(readOnly=false) 63 public ModelAndView save( 64 @ModelAttribute("formModel") Bbs bbs) { 65 bbs.setCreateDate(new Date()); 66 repos.saveAndFlush(bbs); 67 return new ModelAndView("redirect:users/list"); 68 } 69 70 /* 削除処理 */ 71 @PostMapping("/delete") 72 @Transactional(readOnly=false) 73 public ModelAndView delete(@RequestParam int id) { 74 repos.deleteById(id); 75 return new ModelAndView("redirect:/"); 76 } 77
BbsRepository.java
1package com.example.demo; 2 3import org.springframework.data.jpa.repository.JpaRepository; 4 5public interface BbsRepository extends JpaRepository<Bbs, Long> { 6 public Bbs findById(int id); 7 public void deleteById(int id); 8} 9
Bbs.java
1package com.example.demo; 2 3import java.util.Date; 4 5import javax.persistence.Column; 6import javax.persistence.Entity; 7import javax.persistence.GeneratedValue; 8import javax.persistence.GenerationType; 9import javax.persistence.Id; 10import javax.persistence.Table; 11 12import lombok.Getter; 13import lombok.Setter; 14 15@Entity 16@Getter 17@Setter 18@Table(name="bbs") 19 20public class Bbs { 21 22 @Id 23 @GeneratedValue(strategy = GenerationType.AUTO) 24 private int id; 25 26 @Column 27 private Date createDate; 28 @Column 29 private String title; 30 @Column 31 private String content; 32 @Column 33 private String createUser; 34 35}
list.html
1<h1>掲示板</h1> 2<table border="1"> 3 <tr> 4 <th class="col_create_date">作成日</th> 5 <th class="col_title">タイトル</th> 6 <th class="col_create_user">作成者</th> 7 <th>詳細</th> 8 <th>編集</th> 9 <th>消去</th> 10 </tr> 11 <tr th:each="obj : ${data}"> 12 <td th:text="${#dates.format(obj.date, 'yyyy/MM/dd')}"> 13 <td th:text="${obj.title}"></td> 14 <td th:text="${obj.create_user}"></td> 15 <td> 16 <form action="/show" method="get"> 17 <input type="submit" value="詳細"> 18 <input type="hidden" name="id" th:value="${obj.id}"> 19 </form> 20 </td> 21 <td> 22 <form action="/edit" method="get"> 23 <input type="submit" value="編集"> 24 <input type="hidden" name="id" th:value="${obj.id}"> 25 </form> 26 </td> 27 <td> 28 <form action="/delete" method="post"> 29 <input type="submit" value="削除"> 30 <input type="hidden" name="id" th:value="${obj.id}"> 31 </form> 32 </td> 33 </tr> 34</table> 35<hr> 36<form action="/add"> 37 <input type="submit" value="新規追加" /> 38</form> 39</body> 40</html>
new.html
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>Insert title here</title> 6<style> 7table { 8 border-collapse: collapse; 9} 10.col_name {width:200px;} 11.col_data {width:400px;} 12form {display: inline;} 13</style> 14</head> 15<body> 16<h1>掲示板登録</h1> 17<form method="post" action="/" th:object="${formModel}"> 18<input type="hidden" name="id" th:value="*{id}"> 19<table border="1"> 20 <tr> 21 <th class="col_title">タイトル</th> 22 <td class="col_data"> 23 <input type="text" name="name" th:value="*{title}" size="40" 24 maxlength= "40" /> 25 </td> 26 </tr> 27 <tr> 28 <th>内容</th> 29 <td> 30 <input type="text" name="content" th:value="*{content}" size="40" 31 maxlength="40" /> 32 </td> 33 </tr> 34 <tr> 35 <th>作成者</th> 36 <td> 37 <input type="text" name="create_user" th:value="*{create_user}" size="40" 38 maxlength= "40" /> 39 </td> 40 </tr> 41</table> 42<hr> 43<input type="submit" value="登 録" /> 44</form> 45<form action="/"> 46 <input type="submit" value="戻 る" /> 47</form> 48</body> 49</html>
回答1件
あなたの回答
tips
プレビュー