質問編集履歴
1
SpringMVCフレームワーク使用の宣言。コード記述部の書式の改善
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
SpringMVC データの受け渡し
|
body
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
閲覧いただきありがとうございます。
|
3
|
+
|
4
|
+
**SpringMVCフレームワークを使用しています**
|
5
|
+
|
3
6
|
JavaEEを使用してウェブショッピングサイトのようなものを作成しています。
|
4
7
|
画面は初期画面(init.jsp)と明細追加画面(add.jsp)と確認画面(質問には直接関係ありません)があり、今回初期画面と明細追加画面の動作が思った通りにならないため質問させていただきました。長文になりますがどうかよろしくお願いいたします。
|
5
8
|
希望する動作としては以下の通りです。
|
@@ -28,6 +31,7 @@
|
|
28
31
|
|
29
32
|
### 該当のソースコード
|
30
33
|
Manager.javaの一部
|
34
|
+
```Java
|
31
35
|
public final class Manager {
|
32
36
|
|
33
37
|
/** 商品データ */
|
@@ -63,9 +67,10 @@
|
|
63
67
|
list.set(list.indexOf(item), item);
|
64
68
|
}
|
65
69
|
}
|
70
|
+
```
|
66
71
|
|
67
|
-
_________
|
68
72
|
Item.javaの一部
|
73
|
+
```Java
|
69
74
|
/** 商品id */
|
70
75
|
private String id;
|
71
76
|
/** 商品名 */
|
@@ -76,11 +81,12 @@
|
|
76
81
|
private int quantity;
|
77
82
|
/** 小計 */
|
78
83
|
private int subtotal;
|
84
|
+
以下、上記のコンストラクタとgetterとsetterがあります
|
85
|
+
```
|
79
86
|
|
80
|
-
|
87
|
+
|
81
|
-
_________
|
82
88
|
ShopForm.javaの一部
|
83
|
-
|
89
|
+
```Java
|
84
90
|
/** 商品id */
|
85
91
|
private String id;
|
86
92
|
/** 商品名 */
|
@@ -91,25 +97,26 @@
|
|
91
97
|
private int quantity;
|
92
98
|
/** 小計 */
|
93
99
|
private int subtotal;
|
94
|
-
|
100
|
+
|
95
|
-
上記のコンストラクタとgetterとsetterがあります。
|
101
|
+
以下、上記のコンストラクタとgetterとsetterがあります。
|
96
|
-
|
102
|
+
```
|
103
|
+
|
97
104
|
ShopSystemController.java
|
98
|
-
|
105
|
+
```Java
|
99
106
|
@Controller
|
100
107
|
@RequestMapping(value = "/system")
|
101
108
|
public class ShopSystemController {
|
102
|
-
|
109
|
+
private static final String INIT = "init";
|
103
|
-
|
110
|
+
private static final String ADD = "add";
|
104
|
-
|
111
|
+
private String message;
|
105
112
|
|
106
|
-
|
113
|
+
@RequestMapping(value = "/start")
|
107
|
-
|
114
|
+
public String init(ShopForm form, Model model) {
|
108
|
-
|
115
|
+
model.addAttribute("allList", Manager.getItemList());
|
109
|
-
|
116
|
+
model.addAttribute("message", message);
|
110
|
-
|
117
|
+
model.addAttribute("nameList", Manager.makeNameList());
|
111
|
-
|
118
|
+
return INIT;
|
112
|
-
|
119
|
+
}
|
113
120
|
|
114
121
|
/**
|
115
122
|
* 初期画面から呼ばれる。
|
@@ -119,60 +126,65 @@
|
|
119
126
|
*/
|
120
127
|
@RequestMapping(params = ADD)
|
121
128
|
public String add(ShopForm form, BindingResult result, Model model){
|
122
|
-
|
129
|
+
model.addAttribute("allList", Manager.selectProduct(form.getName()));
|
123
|
-
|
130
|
+
model.addAttribute("nameList", Manager.makeNameList());
|
124
|
-
|
131
|
+
model.addAttribute("message", "明細追加完了");
|
125
|
-
|
132
|
+
return ADD;
|
126
133
|
}
|
127
134
|
}
|
128
|
-
|
135
|
+
```
|
136
|
+
|
129
|
-
init.jspのbody部
|
137
|
+
init.jspのbody部
|
138
|
+
```jsp
|
130
139
|
<body>
|
131
140
|
<form:form modelAttribute="salesForm" action="/sales/system">
|
132
|
-
|
141
|
+
商品:<form:select path="name" items="${nameList}" /><br/>
|
133
|
-
|
142
|
+
点数:<form:input path="quantity" value = "1"/><br/>
|
134
|
-
<br/>
|
135
|
-
|
143
|
+
<input type="submit" name="add" value="明細追加" />
|
136
|
-
|
144
|
+
</form:form><br/>
|
137
|
-
|
145
|
+
|
138
|
-
|
146
|
+
<div class="message">
|
139
|
-
|
147
|
+
<c:out value="${message}" />
|
140
|
-
|
148
|
+
<form:errors path="id" />
|
141
|
-
|
149
|
+
</div>
|
142
150
|
</body>
|
151
|
+
```
|
152
|
+
|
143
|
-
|
153
|
+
add.jspのbody部
|
154
|
+
```JSP
|
144
155
|
<body>
|
145
|
-
|
146
|
-
<form:form modelAttribute="salesForm" action="/sales/system">
|
156
|
+
<form:form modelAttribute="salesForm" action="/sales/system">
|
147
|
-
|
157
|
+
商品:<form:select path="name" items="${nameList}" /><br/>
|
148
|
-
|
158
|
+
<div>
|
149
|
-
|
159
|
+
<span>点数:</span><form:input path="quantity" value = "1"/>
|
160
|
+
</div><br/>
|
161
|
+
<input type="submit" name="add" value="明細追加" /><br/>
|
162
|
+
<div class="message"><c:out value="${message}" /><br/>
|
163
|
+
|
164
|
+
<form:hidden path="name" />
|
165
|
+
<table>
|
166
|
+
<tr><th>削除</th><th>商品ID</th><th>商品名</th><th>単価</th><th>点数</th><th>小計</th></tr>
|
167
|
+
<c:forEach items="${allList}" var="list">
|
168
|
+
<tr>
|
169
|
+
<td>${list.id}</span></td>
|
170
|
+
<td>${list.name}</td>
|
171
|
+
<td>${list.price}</td>
|
172
|
+
<td>${list.quantity}</td>
|
173
|
+
<td>${list.subtotal}</td>
|
174
|
+
</tr>
|
175
|
+
</c:forEach>
|
176
|
+
</table>
|
177
|
+
|
178
|
+
<div class = "btnFild">
|
179
|
+
<input type="submit" name="remove" value="削除" /> //この件は大丈夫です
|
180
|
+
<input type="submit" name="firm" value="確定" /> //この件も大丈夫です
|
150
|
-
|
181
|
+
</div>
|
151
|
-
<br/>
|
152
|
-
<input type="submit" name="add" value="明細追加" /><br/>
|
153
|
-
<div class="message"><c:out value="${message}" /><br/>
|
154
|
-
|
155
|
-
<form:hidden path="name" />
|
156
|
-
<table>
|
157
|
-
<tr><th>削除</th><th>商品ID</th><th>商品名</th><th>単価</th><th>点数</th><th>小計</th></tr>
|
158
|
-
<c:forEach items="${allList}" var="list">
|
159
|
-
<tr>
|
160
|
-
<td>${list.id}</span></td>
|
161
|
-
<td>${list.name}</td>
|
162
|
-
<td>${list.price}</td>
|
163
|
-
<td>${list.quantity}</td>
|
164
|
-
<td>${list.subtotal}</td>
|
165
|
-
</tr>
|
166
|
-
</c:forEach>
|
167
|
-
</table>
|
168
|
-
<div class = "btnFild">
|
169
|
-
<input type="submit" name="remove" value="削除" /> //この件は大丈夫です
|
170
|
-
<input type="submit" name="firm" value="確定" /> //この件も大丈夫です
|
171
|
-
</div>
|
172
182
|
</form:form>
|
173
183
|
</body>
|
184
|
+
```
|
174
185
|
|
175
186
|
|
187
|
+
|
176
188
|
### 試したこと
|
177
189
|
問題1 既述通りですが.「点数」データはformに渡せているのは確認できました。
|
178
190
|
selectProductに.「点数」データを渡して、試行錯誤したのですがうまくいきませんでした。
|