前提・実現したいこと
springを使ったアプリの開発で、thymeleafを使いhtmlからcontrollerに値を渡したいです。
ここに質問の内容を詳しく書いてください。
htmlの<input>タグで入力した値をcontrollerの方でUserクラスに値を格納したいのですが、例外が発生してしまいます。
発生している問題・エラーメッセージ
org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/index.html]")
Caused by: org.attoparser.ParseException: Error during execution of processor 'org.thymeleaf.spring5.processor.SpringInputGeneralFieldTagProcessor' (template: "index" - line 9, col 29)
該当のソースコード
Prpcess.java
1@Controller 2public class Process { 3 4 @ModelAttribute 5 public User getUser() { 6 return new User(); 7 } 8 9 @RequestMapping(value = "/login") 10 public ModelAndView index(Model model, User user) { 11 ModelAndView mav = new ModelAndView(); 12 mav.setViewName("index"); 13 return mav; 14 } 15 16 @RequestMapping(value = "/") 17 public String first(Model model, User user) { 18 User user2 = new User(); 19 model.addAttribute("user", user2); 20 return "index"; 21 } 22 23}
User.java
1public class User { 2 3 private String name; 4 5 private String age; 6 7 private String school; 8 9 public User() { 10 11 } 12 13 public User(String name, String age, String school) { 14 this.name = name; 15 this.age = age; 16 this.school = school; 17 } 18 19 public String getName() { 20 return name; 21 } 22 23 public void setName(String name) { 24 this.name = name; 25 } 26 27 public String getAge() { 28 return age; 29 } 30 31 public void setAge(String age) { 32 this.age = age; 33 } 34 35 public String getSchool() { 36 return school; 37 } 38 39 public void setSchool(String school) { 40 this.school = school; 41 } 42 43}
index.html
1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4<meta charset="UTF-8"> 5<title>Insert title here</title> 6</head> 7<body> 8<form action="#" th:action="@{/login}" th:object="${user}" method=post> 9 <p> 名前: <input type="text" th:field="${name}"> 10 <p> 年齢: <input type="text" th:field="${age}"> 11 <p> 学校: <input type="text" th:field="${school}"> 12 <p> <input type="submit" value="送信"> 13</form> 14</body> 15</html>
試したこと
他の質問で同じような質問があり、それを見てUserインスタンスが生成されていないからhtmlの方で値が入らないとあったので、@ModelAttributeとメソッドに引数にUser userとやったのですがダメでした。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/18 14:17