前提・実現したいこと
売上明細から商品を削除する機能を作っています。ラジオボタンを選択し、削除ボタンを押したら商品が削除されるイメージです。削除の動作は実現できましたが、初期状態では、売上明細リストにラジオボタンがどっちでも選択されない状態にしたいです。今の状況は、商品を登録後、ラジオボタンが1つついてしまいます。
該当のソースコード
**add.jsp** <span>売上明細</span> <table class="table" id="table"> <tr> <th>削除</th> <th>商品ID</th> <th>商品名</th> <th>単価</th> <th>点数</th> <th>小計</th> </tr> <c:forEach items="${allList}" var="item" step="1" varStatus="status"> <tr> <td><form:radiobutton path="delNumber" value="${status.index}" /></td> <td>${item.id }</td> <td>${item.name }</td> <td>${item.price }</td> <td>${item.quantity}</td> <td>${item.subtotal }</td> </tr> </c:forEach> </table> <span>合計: <c:out value="${total}" />円 </span> **Controller** @RequestMapping(params = "remove") public String remove(SalesForm form, Model model, SessionStatus sessionStatus) { /**選択された商品が存在する場合、削除を行う*/ if (form.getAllList().size() > 1) { /** RecordManagerにItemListを格納する*/ model.addAttribute("ItemList", RecordManager.getItemList()); model.addAttribute("nameList", RecordManager.makeNameList()); model.addAttribute("allList", form.getAllList()); //選択されたラジオボタンの行番号を受け取り、行を削除する。 int count = form.getDelNumber(); form.getAllList().remove(count); model.addAttribute("total", RecordManager.calTotal(form.getAllList())); model.addAttribute("message", "選択された明細行を削除しました。"); return "add"; } else { /**選択された商品がない場合、初期画面に戻る*/ sessionStatus.setComplete(); model.addAttribute("ItemList", RecordManager.getItemList()); model.addAttribute("nameList", RecordManager.makeNameList()); return "init"; } } **SalesForm** public class SalesForm { private String goodsName; private String point; private int delNumber; //ほかのgetter setterを省略 public int getDelNumber() { return delNumber; } public void setDelNumber(int delNumber) { this.delNumber = delNumber; }
試したこと
こちらの回答を参考しましたが、解決方法わからかなったです。jspの書き方には問題なさそうですが、controllerでは何か足りないものってありますでしょうか?
ぜひ助言をお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/06 06:23
2020/11/06 07:19