前提・実現したいこと
Spring Bootを使って、簡単な銭湯めぐりのWeb日記帳を制作しています。
トップページ(index.html)から検索画面(search.html)へと遷移したいのですが、
どうも上手くいかず、エラー表示になってしまいます。
index.htmlとsearch.html、コントローラーをチェックして頂きたいです。
発生している問題・エラーメッセージ
Spring Boot上でエラーメッセージは出ていないのですが、いざポートにアクセスしてトップ画面から検索をクリックすると
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Wed Aug 19 21:54:29 JST 2020
There was an unexpected error (type=Bad Request, status=400).
と表示されます。
該当のソースコード
html
1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4<meta charset="UTF-8"> 5</head> 6<title>トップページ</title> 7<body> 8<h1>日記</h1> 9<a th:href="@{'/write'}">記録</a> 10<a th:href="@{'/list'}">一覧</a> 11<a th:href="@{'/choice'}">診断</a> 12<a th:href="@{'/search'}">検索</a> 13</body> 14</html>
html
1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4<meta charset="UTF-8"> 5<title>検索画面</title> 6</head> 7<body> 8<form th:action="@{/search}" method="post"> 9<p>検索<input type="text" name="key" /> 10<input type="submit" value="検索"/></p> 11</form> 12</body> 13</html>
java
1package com.example.demo; 2 3import java.util.List; 4import java.util.Optional; 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.ModelAttribute; 10import org.springframework.web.bind.annotation.PathVariable; 11import org.springframework.web.bind.annotation.RequestMapping; 12import org.springframework.web.bind.annotation.RequestParam; 13import org.springframework.web.servlet.ModelAndView; 14 15@Controller 16public class OfuroController { 17 @Autowired 18 OfuroRepository repository; 19 20 @RequestMapping(value = "/") 21 public ModelAndView index(ModelAndView mv) { 22 mv.setViewName("index"); 23 return mv; 24 } 25 26 @RequestMapping("/write") 27 public ModelAndView write(@ModelAttribute("form") OfuroEntity entity, ModelAndView mv) { 28 mv.setViewName("write"); 29 return mv; 30 } 31 32 @RequestMapping(value = "/insert") 33 @Transactional(readOnly = false) 34 public ModelAndView insert(@ModelAttribute("form") OfuroEntity entity, ModelAndView mv) { 35 repository.saveAndFlush(entity); 36 return new ModelAndView("redirect:/list"); 37 } 38 39 @RequestMapping(value = "/list") 40 public ModelAndView list(ModelAndView mv) { 41 mv.setViewName("list"); 42 List<OfuroEntity> list = repository.findAll(); 43 mv.addObject("list", list); 44 return mv; 45 } 46 47 @RequestMapping(value = "/show/{id}") 48 public ModelAndView show(@ModelAttribute OfuroEntity entity, @PathVariable Integer id, ModelAndView mv) { 49 mv.setViewName("show"); 50 Optional<OfuroEntity> show = repository.findById(id); 51 mv.addObject("form", show.get()); 52 return mv; 53 } 54 55 @RequestMapping(value = "/update/{id}") 56 public ModelAndView update(@ModelAttribute OfuroEntity entity, @PathVariable Integer id, ModelAndView mv) { 57 Optional<OfuroEntity> show = repository.findById(id); 58 mv.addObject("form", show.get()); 59 mv.setViewName("update"); 60 return mv; 61 } 62 63 @RequestMapping(value = "/delete/{id}") 64 public ModelAndView delete(@PathVariable Integer id, ModelAndView mv) { 65 mv.setViewName("delete"); 66 Optional<OfuroEntity> show = repository.findById(id); 67 mv.addObject("form", show.get()); 68 return mv; 69 } 70 71 @RequestMapping(value = "/delete") 72 @Transactional(readOnly = false) 73 public ModelAndView remove(@RequestParam("id") Integer id) { 74 repository.deleteById(id); 75 return new ModelAndView("redirect:/list"); 76 } 77 78 79 @RequestMapping(value="/search") 80 public ModelAndView search( 81 @RequestParam("key") String key, ModelAndView mv) { 82 mv.setViewName("search"); 83 List<OfuroEntity> list = repository.findByNameLike("%" + key + "%"); 84 mv.addObject("list", list); 85 return mv; 86} 87}
試したこと
何度も自分なりに書き換えましたが、他の場所もエラーになる一方です。
補足情報(FW/ツールのバージョンなど)
Spring Boot,HTML,CSSを使う課題の一部です。
回答1件
あなたの回答
tips
プレビュー