前提・実現したいこと
Spring Bootを使って、簡単な銭湯めぐりのWeb日記帳を制作しています。
情報を表示する画面(show.html)から更新する画面(update.html)へと遷移したいのですが、
どうも上手くいかず、エラー表示になってしまいます。
show.htmlとupdate.html、コントローラーをチェックして頂きたいです。
発生している問題・エラーメッセージ
Failed to complete request: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "'/update/'+e.id" (template: "show" - line 14, col 4) Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "'/update/'+e.id" (template: "show" - line 14, col 4)] with root cause
該当のソースコード
html
1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4<meta charset="UTF-8"> 5</head> 6<body> 7<div th:object="${form}"> 8<p th:text="*{'施設名:'+name}"></p> 9<p th:text="*{'都県:'+location}"></p> 10<p th:text="*{'ジャンル:'+genre}"></p> 11<p th:text="*{'評価:'+reputation}"></p> 12<p th:text="*{'メモ:'+memo}"></p> 13</div> 14<a th:href="${'/update/'+e.id}">更新</a> 15<a th:href="@{'/'}">トップへ</a> 16</body> 17</html>
html
1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4<meta charset="UTF-8"> 5<style type="text/css"> 6body { 7 font-family: monospace; 8} 9 10textarea { 11 vertical-align: middle 12} 13</style> 14<title>更新</title> 15</head> 16<body> 17 <form th:action="@{/insert}" th:object="${form}" method="post"> 18 19 <h3>施設名</h3> 20 <input type="text" name="name" th:value="*{name}" /><br> 21 <h3>場所</h3> 22 <input type="radio" name="location" th:value="東京都" />東京都<br> 23 <input type="radio" name="location" th:value="神奈川県" />神奈川県<br> 24 <input type="radio" name="location" th:value="埼玉県" />埼玉<br> 25 <input type="radio" name="location" th:value="千葉県" />千葉県<br> 26 <input type="radio" name="location" th:value="茨城県" />茨城県<br> 27 <input type="radio" name="location" th:value="群馬県"/>群馬県<br> 28 <input type="radio" name="location" th:value="栃木県" />栃木県<br> 29 30 <h3>ジャンル</h3> 31 <input type="checkbox" name="genre" th:value="近場" />近場<br> 32 <input type="checkbox" name="genre" th:value="遠出" />遠出<br> 33 <input type="checkbox" name="genre" th:value="車" />車<br> 34 <input type="checkbox" name="genre" th:value="電車" />電車<br> 35 <input type="checkbox" name="genre" th:value="大人数" />大人数<br> 36 <input type="checkbox" name="genre" th:value="個人" />個人<br> 37 38 <h3>評価</h3> 39 <input type="radio" name="reputation" th:value="3" />😍<br> 40 <input type="radio" name="reputation" th:value="2" />🙂<br> 41 <input type="radio" name="reputation" th:value="1" />😢<br> 42 <br> 43 <h3>メモ</h3> 44 <textarea name="memo" th:text="*{memo}" cols="30" rows="5" 45 maxlength="400" placeholder="感想を記入"></textarea> 46 <input type="hidden" name="id" th:value="*{id}"/> 47 <br /> <a th:href="@{'/'}">トップへ</a> <input type="submit" value="更新する" /> 48 </form> 49</body> 50</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.servlet.ModelAndView; 13 14@Controller 15public class OfuroController { 16 @Autowired 17 OfuroRepository repository; 18 19 @RequestMapping(value = "/") 20 public ModelAndView index(ModelAndView mv) { 21 mv.setViewName("index"); 22 return mv; 23 } 24 25 @RequestMapping("/write") 26 public ModelAndView write(@ModelAttribute("form") OfuroEntity entity, ModelAndView mv) { 27 mv.setViewName("write"); 28 return mv; 29 } 30 31 @RequestMapping(value = "/insert") 32 @Transactional(readOnly = false) 33 public ModelAndView insert(@ModelAttribute("form") OfuroEntity entity, ModelAndView mv) { 34 repository.saveAndFlush(entity); 35 return new ModelAndView("redirect:/list"); 36 } 37 38 @RequestMapping(value = "/list") 39 public ModelAndView list(ModelAndView mv) { 40 mv.setViewName("list"); 41 List<OfuroEntity> list = repository.findAll(); 42 mv.addObject("list", list); 43 return mv; 44 } 45 46 @RequestMapping(value = "/show/{id}") 47 public ModelAndView show(@ModelAttribute OfuroEntity entity, @PathVariable Integer id, ModelAndView mv) { 48 mv.setViewName("show"); 49 Optional<OfuroEntity> show = repository.findById(id); 50 mv.addObject("form", show.get()); 51 return mv; 52 } 53 @RequestMapping(value="/update/{id}") 54 public ModelAndView update( 55 @ModelAttribute OfuroEntity entity, 56 @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}
試したこと
何度も自分なりに書き換えましたが、他の場所もエラーになる一方です。
補足情報(FW/ツールのバージョンなど)
Spring Boot,HTML,CSSを使う課題の一部です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/19 11:31