流れとして、
1.HTMLで[リストを取得]ボタンを押す
2.ControllerクラスからModelクラスを呼び出す(引数なし)
3.ModelクラスDaoクラスを呼び出す
4.DaoクラスでDBから全リストを取得する
5.Modelクラスで、4で取得したリストをArrayList<Bean型>に順に格納し、ArrayListをControllerに返す
6.Controllerクラスで、5から返ってきたArrayListをmodel.addAttributeする
7.HTMLで、th:eachで6を取得しth:textで中身を取得
というようにしようとしています。
↓ソース
HTML:EmpList.html
Controller:MastaController.java
Model:MastaForm.java
Bean:Bean.java
Dao:Dao.java
EmpList
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 9<h2>従業員マスタメンテナンス</h2> 10 11 12 13<input type="submit" name="listget" value="リストを取得" ><br><br> 14 15<tr th:each="getlist:${getlist}"> 16<form action="/main"> 17 従業員No.<td th:text="${getlist.getNom()}"></td> 18 名前:<td th:text="${getlist.getName()}"></td> 19 <input type="hidden"th:value="${getlist.getNom()}" id="nom" name="nom"> 20<input type="submit" value="詳細" name="select"><br><br> 21</form> 22</tr> 23 24</body> 25</html>
MastaController
1package mastalist; 2 3import java.util.ArrayList; 4import org.springframework.beans.factory.annotation.Autowired; 5import org.springframework.stereotype.Controller; 6import org.springframework.ui.Model; 7import org.springframework.web.bind.annotation.GetMapping; 8import org.springframework.web.bind.annotation.RequestMapping; 9 10@RequestMapping("/main") 11@Controller 12public class MastaController { 13 14 @Autowired 15 private MastaForm mastaForm; 16 @GetMapping 17 public String main() { 18 return "EmpList"; 19 } 20 21 @RequestMapping(params="listget") 22 public String Emp(Model model) { 23 ArrayList<Bean> bean = mastaForm.mastaform(); 24 model.addAttribute("getlist",bean); 25 return "EmpList"; 26 } 27}
MastaForm
1package mastalist; 2 3import java.util.ArrayList; 4import java.util.List; 5import java.util.Map; 6 7import org.springframework.beans.factory.annotation.Autowired; 8import org.springframework.stereotype.Service; 9 10@Service 11public class MastaForm { 12 @Autowired 13 private Dao dao; 14 15 public ArrayList<Bean> mastaform() { 16 17 List<Map<String,Object>> All = dao.selectAll(); 18 19 Bean bean = new Bean(); 20 ArrayList<Bean> aList = new ArrayList<Bean>(); 21 22 for(int i = 0; i < All.size(); i++) { 23 Map<String, Object> list = All.get(i); 24 String nom = (String) list.get("nom"); 25 String name = (String) list.get("name"); 26 String kana = (String) list.get("kana"); 27 String tell = (String) list.get("tell"); 28 String mail = (String) list.get("mail"); 29 String year = (String) list.get("year"); 30 String month = (String) list.get("month"); 31 String day = (String) list.get("day"); 32 String age = (String) list.get("age"); 33 String code = (String) list.get("code"); 34 String add1 = (String) list.get("add1"); 35 String add2 = (String) list.get("add2"); 36 37 bean.setNom(nom); 38 bean.setName(name); 39 bean.setKana(kana); 40 bean.setTell(tell); 41 bean.setMail(mail); 42 bean.setYear(year); 43 bean.setMonth(month); 44 bean.setDay(day); 45 bean.setAge(age); 46 bean.setCode(code); 47 bean.setAdd1(add1); 48 bean.setAdd2(add2); 49 50 aList.add(bean); 51 } 52 return aList; 53 } 54} 55
Bean
1package mastalist; 2 3import javax.validation.constraints.NotBlank; 4 5 6public class Bean { 7 8 @NotBlank 9 String nom; 10 @NotBlank 11 String name; 12 @NotBlank 13 String kana; 14 @NotBlank 15 private String tell; 16 @NotBlank 17 private String mail; 18 @NotBlank 19 private String year; 20 @NotBlank 21 private String month; 22 @NotBlank 23 private String day; 24 @NotBlank 25 private String age; 26 @NotBlank 27 private String code; 28 @NotBlank 29 private String add1; 30 @NotBlank 31 private String add2; 32 33 public String getNom() { 34 return nom; 35 } 36 public void setNom(String nom) { 37 this.nom = nom; 38 } 39 public String getName() { 40 return name; 41 } 42 public void setName(String name) { 43 this.name = name; 44 } 45 public String getKana() { 46 return kana; 47 } 48 public void setKana(String kana) { 49 this.kana = kana; 50 } 51 public String getTell() { 52 return tell; 53 } 54 public void setTell(String tell) { 55 this.tell = tell; 56 } 57 public String getMail() { 58 return mail; 59 } 60 public void setMail(String mail) { 61 this.mail = mail; 62 } 63 public String getYear() { 64 return year; 65 } 66 public void setYear(String year) { 67 this.year = year; 68 } 69 public String getMonth() { 70 return month; 71 } 72 public void setMonth(String month) { 73 this.month = month; 74 } 75 public String getDay() { 76 return day; 77 } 78 public void setDay(String day) { 79 this.day = day; 80 } 81 public String getAge() { 82 return age; 83 } 84 public void setAge(String age) { 85 this.age = age; 86 } 87 public String getCode() { 88 return code; 89 } 90 public void setCode(String code) { 91 this.code = code; 92 } 93 public String getAdd1() { 94 return add1; 95 } 96 public void setAdd1(String add1) { 97 this.add1 = add1; 98 } 99 public String getAdd2() { 100 return add2; 101 } 102 public void setAdd2(String add2) { 103 this.add2 = add2; 104 } 105}
Dao
1package mastalist; 2 3import java.util.List; 4import java.util.Map; 5 6import org.springframework.beans.factory.annotation.Autowired; 7import org.springframework.jdbc.core.JdbcTemplate; 8 9public class Dao { 10 11 @Autowired 12 JdbcTemplate jdbc = new JdbcTemplate(); 13 14 public List<Map<String, Object>> selectAll() { 15 List<Map<String, Object>> selectAll = jdbc.queryForList("SELECT * FROM masta_list"); 16 return selectAll; 17 } 18}
このような形で組んでいるのですが、SpringBootアプリケーションを実行しようとすると下記のようなエラーが発生して実行も出来ず、デバックもできません。どこに問題があるのかもわからず詰んでいます。
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2020-10-10 16:22:05.561 ERROR 4728 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Field dao in mastalist.MastaForm required a bean of type 'mastalist.Dao' that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider defining a bean of type 'mastalist.Dao' in your configuration.
また、5番から先のやり方が合っているのか自信がありません。
もし時間がお許しでしたら、構文としておかしいところ等教えていただけると幸いです。
HTMLがまだ作成途中でよくわからない形ですが、無視で大丈夫です。
Attributeされたものを受け取れる形になっていればあとはなんとかします。
情報不足は随時追加いたします。
以上、お力添えをお願い致します。
追記です。
スクショがうまく行かないのでコピペです。現状このような状態です。
HTML
1従業員マスタメンテナンス 2 3 4従業員No.11 名前:山田 太郎 5 6従業員No.11 名前:山田 太郎 7 8従業員No.11 名前:山田 太郎 9 10従業員No.11 名前:山田 太郎 11 12従業員No.11 名前:山田 太郎 13 14従業員No.11 名前:山田 太郎 15
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/10 08:13
2020/10/10 14:12
2020/10/11 04:07