質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

0回答

2070閲覧

削除処理が動作しません。

naotaro0704

総合スコア19

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

0クリップ

投稿2019/09/09 07:19

編集2022/01/12 10:55

前提・実現したいこと

ラジオボタン押下時の動作についてです。説明が足りない部分があるかもしれませんがよろしくお願いします。
ラジオボタンを選択して、削除を押下すると選択されたselectListが削除されるプログラムを作りたいのです。実行するとメッセージは表示されるのですが、削除自体が行われません。エラーは発生していないのでどこを修正すればいいのかがわかりません。

該当のソースコード

SalesSystemController.java

java

1@Controller 2@RequestMapping(value = "/system") 3public class SalesSystemController { 4 5 private static final Logger logger = LoggerFactory.getLogger(SalesSystemController.class); 6 7 /** Stringの定数として次の6つを定義する */ 8 private static final String INIT = "init"; 9 private static final String ADD = "add"; 10 private static final String FIX = "fix"; 11 12 private static final String ERRMSG = "1以上の数字を入力してください。"; 13 private static final String ADDMSG = "明細に追加しました。"; 14 private static final String FIXMSG = "以下のように売上登録しました。"; 15 16 17 /** 初期画面を呼び出す処理 */ 18 @RequestMapping(value = "/start") 19 public String init(SalesForm form, Model model) { 20 /** RecordManagerにItemListを格納する */ 21 model.addAttribute("ItemList", RecordManager.getItemList()); 22 /** RecordManagerにNameListを作成する */ 23 model.addAttribute("nameList", RecordManager.makeNameList()); 24 return INIT; 25 } 26 27 28 29~(中略)~ 30 } 31 32 /** 明細追加画面での削除押下時の処理 */ 33 @RequestMapping(params = "remove") 34 public String remove(SalesForm form, Model model) { 35 36 /** RecordManagerにNameListを作成する */ 37 model.addAttribute("nameList", RecordManager.makeNameList()); 38 /** QuantityにaddDataを格納 */ 39 model.addAttribute("addData", form.getQuantity()); 40 41 /** ラジオボタン選択による条件分岐 */ 42 43 /** ラジオボタンを選択せずに削除ボタンを押下した時の処理 */ 44 45 46 /**削除処理*/ 47           RecordManager.remove(); 48 /** 削除完了メッセージの表示 */ 49 model.addAttribute("message4", DELETE); 50 51 /** 商品の残りの数による条件分岐 */ 52 53 /** 売上明細の残りが1件以上の処理*/ 54 55 if ( RecordManager.getSelectList().size()>1){ 56 /** RecordManagerのselectLisitを取得 */ 57 model.addAttribute("allList",RecordManager.getSelectList()); 58 /** RecordManagerにNameListを作成する */ 59 model.addAttribute("nameList",RecordManager.makeNameList()); 60 /** 売上に合計金額を表示 */ 61 model.addAttribute("total",RecordManager.getTotal()); 62 /** 明細追加画面へ */ 63 return ADD; 64 } 65 66 } 67 } 68}

RecordManager.java

java

1 2package jp.practice.sales; 3 4//import java.time.Duration; 5import java.util.ArrayList; 6import java.util.List; 7 8//商品一覧 9/** 10 * 商品データ全体を保持するクラス 11 * @param <selectList> 12 */ 13public final class RecordManager<selectList> { 14 15 /** 商品データ */ 16 private static List<Item> list = new ArrayList<>(); 17 private static List<Item> selectList = new ArrayList<>(); 18 private static Item item; 19 /** totalを定義 */ 20 private static int total = 0; 21 private static long salesId ; 22 23 24 25 static { 26 list.add(new Item("A00101", "油性ボールペン", 60, 0, 0)); 27 list.add(new Item("A00201", "極細ボールペン", 120, 0, 0)); 28 list.add(new Item("A00301", "蛍光ペン6色セット", 420, 0, 0)); 29 list.add(new Item("A00401", "シャープペンシル", 100, 0, 0)); 30 31 } 32 33 /** 商品名 */ 34 public static List<Item> selectItem(String id, int quantity) { 35 36 for (int i = 0; i < list.size(); i++) { 37 38 if (id.equals(list.get(i).getId())) { 39 // System.out.println(i); 40 /** Itemを再定義 */ 41 Item item = new Item(id, list.get(i).getName(), list.get(i).getPrice(), quantity, 42 quantity * list.get(i).getPrice()); 43 44 selectList.add(item); 45 46 /** xを定義 */ 47 int x = quantity * list.get(i).getPrice(); 48 total = total + x; 49 50 break; 51 } 52 53 } 54 55 return selectList; 56 57 } 58 59 /** nameListの作成 */ 60 public static String[] makeNameList() { 61 String[] nameList = new String[list.size()]; 62 for (int i = 0; i < list.size(); i++) { 63 nameList[i] = (list.get(i)).getName(); 64 } 65 return nameList; 66 } 67 68 /** itemList取得 */ 69 public static List<Item> getItemList() { 70 return list; 71 } 72 73 /** itemLista設定 */ 74 public static void setItemList() { 75 /** 設定した[item」をlist内で検索する。 */ 76 list.set(list.indexOf(item), item); 77 } 78 79 /** 削除処理*/ 80// public void removeRow( ){ 81// selectList remove; 82// 83// } 84 85 /** 売上Idの取得*/ 86 87 /** 88 * @return salesId 89 */ 90 public static long getSalesId() { 91 long salesId = System.currentTimeMillis(); 92 return salesId; 93 } 94 95 /** 96 * @return selectList 97 */ 98 public static List<Item> getSelectList() { 99 return selectList; 100 } 101 102 /** 103 * @param selectList セットする selectList 104 */ 105 public static void setSelectList(List<Item> selectList) { 106 RecordManager.selectList = selectList; 107 } 108 109 /** 110 * @param salesId セットする salesId 111 */ 112 public static void setSalesId(long salesId) { 113 RecordManager.salesId = salesId; 114 } 115 116 /** データの初期化*/ 117 public static void clear() { 118 selectList = new ArrayList<>(); 119 } 120 121 122 /** 123 * @return total 124 */ 125 public static int getTotal() { 126 return total; 127 } 128 129 /** 130 * @param total 131 * セットする total 132 */ 133 public static void setTotal(int total) { 134 RecordManager.total = total; 135 } 136 publicstatic void remove() { 137 list.remove(selectList); 138}

add.jsp

jsp

1 2<body> 3 <form:form modelAttribute="salesForm" action="/sales/system"> 4 <div class="header"> 5 <span class="titleName">直太郎オンラインショップ</span> 6 <div class="date"><%=LocalDate.now()%></div> 7 </div> 8 <div class="main"> 9 <div> 10 商品: 11 <form:select path="id"> 12 13 <form:option value="A00101">油性ボールペン</form:option> 14 <form:option value="A00201">極細ボールペン</form:option> 15 <form:option value="A00301">蛍光ペン6色セット</form:option> 16 <form:option value="A00401">シャープペンシル</form:option> 17 <form:option value="A00501">鉛筆H(1ダース)</form:option> 18 19 </form:select> 20 <br /> 21 </div> 22 <div> 23 <span class="itemQuantity">点数:</span> 24 <form:input path="quantity" size="20" /> 25 </div> 26 27 <div class="add"> 28 <div> 29 <input type="submit" name="addition" value="明細追加" /> 30 </div> 31 </div> 32 </div> 33 34 <br> 35 <div class="message"> 36 <font color="#ff0000"> <c:out value="${message1}" /> 37 </font> 38 <font color="#1e90ff"> <c:out value="${message2}" /> 39 <font color="#1e90ff"> <c:out value="${message4}" /> 40 </font> 41 </font> 42 <font color="#ff0000"> <c:out value="${message5}" /> 43 </font> 44 </div> 45 <br> 46 47 48 49 <div class=""> 50 <span class="details">売上明細</span> 51 52 <table class="product"> 53 54 <tr> 55 <th>削除</th> 56 <th>商品ID</th> 57 <th>商品名</th> 58 <th>単価</th> 59 <th>点数</th> 60 <th>小計</th> 61 </tr> 62 <c:forEach items="${allList}" var="allList" varStatus="status"> 63 <tr> 64 <th class="itemradiobtn"> 65 <form:radiobutton path="name" name="delete" label="" value="${allList.id}" /></th> 66 <th class="id">${allList.id}</th> 67 <th class="nama">${allList.name}</th> 68 <th class="price">${allList.price}</th> 69 <th class="quantity">${allList.quantity}</th> 70 <th class="subtotal">${allList.subtotal}</th> 71 </tr> 72 </c:forEach> 73 </table> 74 </div> 75 76 <div class="total"> 77 合計: 78 <fmt:formatNumber groupingUsed="true"> 79 <c:out value="${total}" /> 80 </fmt:formatNumber> 8182 </div> 83 84 85 <div class="footer"> 86 87 <input type="submit" name="remove" value="削除" 88 onclick="remove_row(this)" /> <input type="submit" name="firm" 89 value="確定" /> 90 </div> 91 92 </form:form> 93 94</body> 95</html> 96

###試したこと
listをselectListに変更して同じ動作をしてみたが変わらず。
ほかの改善点が思い浮かばず行き詰っています。

補足情報(FW/ツールのバージョンなど)

Eclipse Java EE IDE for Web Developers.
Version: Mars.2 Release (4.5.2)
ローカルホストTomcat8

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

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

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

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

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

m.ts10806

2019/09/09 07:40

RecordMamager.java RecordManager どちらが正しいですか? クラス名と違うファイル名はNGなはずですけど。
naotaro0704

2019/09/09 07:56

RecordManager.javaです。訂正しましたご指摘ありがとうございます。
terotero

2019/09/09 13:53 編集

selectListに選択した値を設定できていますか?
naotaro0704

2019/09/10 00:05

どのように確認すればいいでしょうか。
naotaro0704

2019/09/10 00:24

デバックを実行しましたがどこを確認すればいいのかがいまいちわかりません。エラーが発生しているような感じではないのですが。。。
m.ts10806

2019/09/10 00:33

変数の確認もできますよ。 ブレークポイント張ったりする必要はあります。 teroteroさんの「selectListに選択した値を設定できていますか?」の確認の仕方です。 エラーが発生しているか、ではなく想定の場所に想定の値が入ってきているか確認してくださいという意味ですよ
naotaro0704

2019/09/10 03:54 編集

publicstatic void remove() { list.remove(selectList); } listをremoveしてしまうとマスターデータを削除してしまうのでコードを変更しました。 public static void remove(int pos) { selectList.remove(pos); } このメソッドをControllerでint型をどう呼び出せばいいかがわかりません。
m.ts10806

2019/09/10 04:34

自身で定義されたのではないですか? 意図があってそのように変えたならその通りに利用すれば良いだけではないでしょうか・・
naotaro0704

2019/09/10 06:49

別ファイルから呼び出すのが苦手なのでうまくコードを作れません。 お手数ですがヒントのようなものをいただけないでしょうか。
m.ts10806

2019/09/10 06:51

引数与えればいいだけではないですか? 苦手も何も基礎に当たる部分なのでヒントと言われても 「基礎おさえてきて」くらいのアドバイスになりますけど。。。
naotaro0704

2019/09/11 08:03

解決しました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問