🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

1回答

4284閲覧

Spring boot model.addAttributeを使ってエラーの場合でもHTMLのtextで入力していた値を保持しする方法

退会済みユーザー

退会済みユーザー

総合スコア0

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2019/11/24 01:25

実現したいこと: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>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

html

1<td><input type="text" name="kingaku" value=""></td> 2<td><input type="text" name="syousai" value=""></td> 3<td><input type="text" name="bikou" value=""></td>

これらの項目がthymeleafからの値を出力していません。

投稿2019/11/24 01:31

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/11/24 01:35

ご回答ありがとうございます。 <input type="text" name="date" th:value="${date}"> この項目もクリアされてしまうのですが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問