前提・実現したいこと
日付計算アプリを作成しております。
部品のひとつで、初日を「数える」「数えない」のラジオボタンを作りまして、
「数えない」場合は日数+0、「数える」場合は-1の計算処理を行えるよう実装いたしました。
実現したいことは、初期値を「数えない」のラジオボタンに設定することと、
計算処理後も選択したボタンで留まるようにしたいです。
発生している問題・エラーメッセージ
今回Mapを使い、HTML側に送っているため、checked属性を使用すると、Mapの最後に呼び出される「数える」のボタンにだけ初期値が設定されてしまいます。
該当のソースコード
Java
1@RequestMapping(value = "/daycount", method = RequestMethod.POST) 2 public String submit(Model model, @Validated DayCountForm daycountform, BindingResult result) { 3 4 5 String strRadio = daycountform.getSelectDayCount(); 6 model.addAttribute("selectDayCount",strRadio); 7 8 int numRadio =Integer.parseInt(strRadio); 9 model.addAttribute("selectDay",getSelectDay()); 10 11 return "daycount"; 12 } 13 14 15 Map<String, String> getSelectDay() { 16 Map<String, String> selectDay = new LinkedHashMap<String, String>(); 17 18 selectDay.put("0", "数えない"); 19 selectDay.put("-1", "数える"); 20 21 return selectDay; 22 } 23}
Java
1public class DayCountForm { 2 3 4 private String selectDayCount; 5 6 public String getSelectDayCount() { 7 return selectDayCount; 8 } 9 10 public void setSelectDayCount(String selectDayCount) { 11 this.selectDayCount = selectDayCount; 12 }
HTML
1 初日を<span th:each="select :${selectDay}"> <input type="radio" 2 name="selectDayCount" th:value="${select.key}" th:text="${select.value}" 3 checked="checked">
試したこと
th:selected・・・セレクトボックスでの使用のため動作せず。
th:checked・・・チェックボックスでの使用のため動作せず。
checked・・・th:eachでMapを呼びだしているため、最後に呼び出された値に初期設定が入ってしまう。
まだ初学者のため、文章も伝わりにくいところが多々あると思いますが、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。