実現したいこと:model.addAttributeを使ってHTMLのtextで入力していた値を保持しする方法
現状:HTML上のtextがPost送信でnullだった場合Controller上でエラーメッセージを出して画面遷移をしないように実装しているが、その場合は他のtextで入力していた値がクリアされてしま。
う。
Controllerクラス(Postのmodel.addAttribute("errmsg","金額は必須項目です");を出力するとHTML上のform情報が消える)
@GetMapping("/")
public ModelAndView index(ModelAndView mav) {
mav.setViewName("init");
Date date=new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String today=sdf.format(date);
mav.addObject("date",today);
mav.addObject("title", "タイトル");
return mav;
}
@PostMapping("/insert") public String insert(Model model,@ModelAttribute KakeiboForm form,BindingResult bindingResult,@Validated KakeiboEntity kakeiboentity ) { if(form.getKingaku()==0) { model.addAttribute("title", "タイトル"); model.addAttribute("errmsg","金額は必須項目です"); return "init"; }
//(未実装)
model.addAttribute("msg","登録しました");
return "update";
}
HTML
<body> <p class="msg" th:text="${title}"></p> <p th:text="${errmsg}"></p> <form method="post" action="/insert"> <table border="1"> <tr> <th>日付</th> <th>項目</th> <th>金額</th> <th>詳細</th> <th>備考</th> </tr> <tr> <td><input type="text" name="date" th:value="${date}"></td> <td><label for="koumoku"></label> <select name="koumoku" id="koumoku"> <option value="syokuhi">食費</option> <option value="syokuhi2">食費(雑)</option> <option value="nitityouhin">日用品</option> <option value="hoken">保険</option> </select></td> <td><input type="text" name="kingaku" value=""></td> <td><input type="text" name="syousai" value=""></td> <td><input type="text" name="bikou" value=""></td> </tr> </table> <input type="submit" name="登録" /> </form> </body>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/11/24 01:35