回答編集履歴
3
修正
answer
CHANGED
@@ -103,7 +103,7 @@
|
|
103
103
|
|
104
104
|
例:
|
105
105
|
```jsp
|
106
|
-
<input type="button" value="更新" onclick="location
|
106
|
+
<input type="button" value="更新" onclick="location.href='<%=request.getContextPath()%>/selectUp?id=${mutterList.id}'">
|
107
107
|
|
108
108
|
|
109
109
|
または
|
@@ -112,7 +112,7 @@
|
|
112
112
|
※selectUpと決めつけてますが、きちんと自身が決めたサーブレットのURLを入れてくださいね。
|
113
113
|
|
114
114
|
> ③レコードのIDをURLを使って送る際、
|
115
|
-
onclick="location
|
115
|
+
onclick="location.href='./selectUp.java"?id= + id +"'"
|
116
116
|
と表記するつもりなのですが合ってますでしょうか?
|
117
117
|
|
118
118
|
間違っているので前項の最後に例で示しました。
|
2
修正
answer
CHANGED
@@ -140,4 +140,11 @@
|
|
140
140
|
from mutter where id = ? -- ?には一覧画面から渡された値を取得する
|
141
141
|
```
|
142
142
|
|
143
|
-
「GETパラメータ」または「クエリストリング」が「一覧画面から渡された値を取得する」際のキーワードです。
|
143
|
+
「GETパラメータ」または「クエリストリング」が「一覧画面から渡された値を取得する」際のキーワードです。
|
144
|
+
|
145
|
+
|
146
|
+
# 蛇足
|
147
|
+
|
148
|
+
リクエストとレスポンスについて基本をおさえておきましょう。
|
149
|
+
でないと多分、全く進みません。
|
150
|
+
- [HTTPリクエスト/レスポンスの構成要素を初心者にも分かるように解説してみた](https://qiita.com/koheiyamaguchi0203/items/5777c4653a01ae4c7b06)
|
1
修正
answer
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
+
> ①formにoptionを使った性別を設定できるものを用意していますが
|
1
|
-
|
2
|
+
値(1,2,3)は取得できているのですが一覧表示にすると名前(男性,女性)ではなくそのまま値を表示してしまいます。名前を表示する方法はありますでしょうか?
|
2
3
|
|
3
4
|
別テーブルにマスタデータを持ってJOINするか、性別くらいなら固定でしても良いと思います。
|
4
5
|
|
@@ -84,4 +85,59 @@
|
|
84
85
|
いずれの方法でも実現は可能ですが、
|
85
86
|
「マスタデータを持っておく」考え方を覚えれば色んな形で応用できますので、
|
86
87
|
練習がてらこちらを覚えたほうが良いかもしれません。
|
87
|
-
(性別や都道府県ってほぼ変わらないものですので、通常は固定です)
|
88
|
+
(性別や都道府県ってほぼ変わらないものですので、通常は固定です)
|
89
|
+
|
90
|
+
> ②入力ができるformに入力した内容を送信するsubmitがあります。
|
91
|
+
一覧を表示しているテーブルのそれぞれのレコードに変更と削除という、レコードの値を持って画面へ遷移するsubmitを用意しているのですが、リンクとして機能しません。
|
92
|
+
form内では1つの遷移先しか持つことができない(javaのみでは)ようなのですが
|
93
|
+
テーブルでも同じなのでしょうか?
|
94
|
+
|
95
|
+
同じです。そもそも機能しないのはformで囲ってないからです。
|
96
|
+
|
97
|
+
ただ[別の質問](https://teratail.com/questions/199926)でも書いたように`selectUp.java`のようにアクセスはできません。
|
98
|
+
サーブレットなので{プロジェクト名}{WebServletの指定}のURLである必要があります。
|
99
|
+
selectUpにマッピングしたURLでアクセスしてください。
|
100
|
+
URLの取り方はformのactionと同じです。
|
101
|
+
|
102
|
+
あと「削除」がどういう処理をするつもりなのか分かりませんが、少なくとも「更新」については「更新画面に遷移してその先で修正する」ので、submitのように処理を期待するものではなく、あくまでtype=buttonかaタグにして「画面遷移」の形をとってください。
|
103
|
+
|
104
|
+
例:
|
105
|
+
```jsp
|
106
|
+
<input type="button" value="更新" onclick="location:href='<%=request.getContextPath()%>/selectUp?id=${mutterList.id}'">
|
107
|
+
|
108
|
+
|
109
|
+
または
|
110
|
+
<a href="<%=request.getContextPath()%>/selectUp?id=${mutterList.id}">更新</a>
|
111
|
+
```
|
112
|
+
※selectUpと決めつけてますが、きちんと自身が決めたサーブレットのURLを入れてくださいね。
|
113
|
+
|
114
|
+
> ③レコードのIDをURLを使って送る際、
|
115
|
+
onclick="location:href='./selectUp.java"?id= + id +"'"
|
116
|
+
と表記するつもりなのですが合ってますでしょうか?
|
117
|
+
|
118
|
+
間違っているので前項の最後に例で示しました。
|
119
|
+
|
120
|
+
|
121
|
+
> ④この画面の次画面でUpdateしたい内容をformに入力して頂く際に初期値として選択したレコードをformに入力しますが、formの欄の下にはこの画面と同様に一覧を表示しておりますので2種類のselect文を実行することになるのですが、この場合2種類のデータを別のArrayListに保管し表示することは可能なのでしょうか?
|
122
|
+
それとも指定したレコードの詳細を取得し表示することが出来るのでしょうか?
|
123
|
+
|
124
|
+
1つ1つ突っ込んでいくと
|
125
|
+
> formの欄の下にはこの画面と同様に一覧を表示しておりますので2種類のselect文を実行することになるのですが、
|
126
|
+
|
127
|
+
なりません。一覧画面は一覧画面でSELECTし、更新画面は更新画面でSELECTします。
|
128
|
+
|
129
|
+
> この場合2種類のデータを別のArrayListに保管し表示することは可能なのでしょうか?
|
130
|
+
|
131
|
+
可能ですが、保管したところでそれぞれSELECTを実行するのでほとんど意味はないと思います。
|
132
|
+
|
133
|
+
> それとも指定したレコードの詳細を取得し表示することが出来るのでしょうか?
|
134
|
+
|
135
|
+
[前回の質問の回答](https://teratail.com/questions/200830#reply-297134)のコメントに書いた通り、where句を使います。
|
136
|
+
|
137
|
+
```SQL
|
138
|
+
select
|
139
|
+
*
|
140
|
+
from mutter where id = ? -- ?には一覧画面から渡された値を取得する
|
141
|
+
```
|
142
|
+
|
143
|
+
「GETパラメータ」または「クエリストリング」が「一覧画面から渡された値を取得する」際のキーワードです。
|