質問編集履歴
3
初心者マーク
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
2
解決後のコードを記載
title
CHANGED
File without changes
|
body
CHANGED
@@ -109,8 +109,104 @@
|
|
109
109
|
}
|
110
110
|
|
111
111
|
```
|
112
|
+
### 解決後のjsp
|
113
|
+
|
114
|
+
```
|
115
|
+
<%@page contentType="text/html" pageEncoding="UTF-8"%>
|
116
|
+
|
117
|
+
<html>
|
118
|
+
<head>
|
119
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
120
|
+
<title>JSP Page</title>
|
121
|
+
</head>
|
122
|
+
<%
|
123
|
+
HttpSession set = request.getSession();
|
124
|
+
String nameA = (String)set.getAttribute("name"); // 格納された名前を取得
|
125
|
+
String seibetuA = (String)set.getAttribute("seibetu"); // 格納された性別を取得
|
126
|
+
String hobyA = (String)set.getAttribute("hoby"); //格納された趣味を取得
|
127
|
+
|
128
|
+
String stM = "男";
|
129
|
+
String stF = "女";
|
130
|
+
%>
|
131
|
+
<body>
|
132
|
+
<h1>Hello World!</h1>
|
133
|
+
<form action="addSession" method="POST">
|
134
|
+
<p>下記を入力してください。</p>
|
135
|
+
*名前:<input type="TEXT" name="name" size=20 value="<%=nameA%>" /><br>
|
136
|
+
*性別:男<input type="radio" name="seibetu" value="男" <% if(seibetuA.equals(stM)){ out.print("checked"); } %> >
|
137
|
+
女<input type="radio" name="seibetu" value="女" <% if(seibetuA.equals(stF)){ out.print("checked"); } %> />
|
138
|
+
<br>
|
139
|
+
*趣味:<br>
|
140
|
+
<input type="TEXT" name="hoby" size=20 value="<%=hobyA%>" />
|
141
|
+
<br><br>
|
142
|
+
<input type="submit" value="送信" />
|
143
|
+
</form>
|
144
|
+
<p> <%out.print(seibetuA);%></p>
|
145
|
+
</body>
|
146
|
+
</html>
|
147
|
+
|
148
|
+
```
|
149
|
+
### 解決後のサーブレット
|
150
|
+
|
151
|
+
```
|
152
|
+
|
153
|
+
import java.io.IOException;
|
154
|
+
import java.io.PrintWriter;
|
155
|
+
import javax.servlet.RequestDispatcher;
|
156
|
+
import javax.servlet.ServletException;
|
157
|
+
import javax.servlet.annotation.WebServlet;
|
158
|
+
import javax.servlet.http.HttpServlet;
|
159
|
+
import javax.servlet.http.HttpServletRequest;
|
160
|
+
import javax.servlet.http.HttpServletResponse;
|
161
|
+
import javax.servlet.http.HttpSession;
|
162
|
+
|
163
|
+
@WebServlet ( name = "addSession" , urlPatterns = {"/addSession"})
|
164
|
+
public class addSession extends HttpServlet {
|
165
|
+
|
166
|
+
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
167
|
+
throws ServletException, IOException {
|
168
|
+
response.setContentType("text/html;charset=UTF-8");
|
169
|
+
try (PrintWriter out = response.getWriter()) {
|
170
|
+
|
171
|
+
request.setCharacterEncoding("UTF-8");
|
172
|
+
String name = request.getParameter("name");
|
173
|
+
String seibetu = request.getParameter("seibetu");
|
174
|
+
String hoby = request.getParameter("hoby");
|
175
|
+
|
176
|
+
|
177
|
+
HttpSession set = request.getSession();
|
178
|
+
set.setAttribute("name",name);
|
179
|
+
set.setAttribute("seibetu",seibetu);
|
180
|
+
set.setAttribute("hoby",hoby);
|
181
|
+
|
182
|
+
String nameA = (String)set.getAttribute("name");
|
183
|
+
String seibetuA = (String)set.getAttribute("seibetu");
|
184
|
+
String hobyA = (String)set.getAttribute("hoby");
|
185
|
+
|
186
|
+
out.println("<!DOCTYPE html>");
|
187
|
+
out.println("<html>");
|
188
|
+
out.println("<head>");
|
189
|
+
out.println("<title>Servlet addSession</title>");
|
190
|
+
out.println("</head>");
|
191
|
+
out.println("<body>");
|
192
|
+
out.println("<p>名前: " + nameA + "</p>");
|
193
|
+
out.println("<p>性別: " + seibetuA + "</p>");
|
194
|
+
out.println("<p>趣味: " + hobyA + "</p>");
|
195
|
+
out.println("<p>セッションに保存しました。</p>");
|
196
|
+
out.println("</body>");
|
197
|
+
out.println("</html>");
|
198
|
+
|
199
|
+
|
200
|
+
}
|
201
|
+
}
|
202
|
+
|
203
|
+
}
|
204
|
+
|
205
|
+
```
|
206
|
+
|
112
207
|
### 試したこと
|
113
208
|
|
114
209
|
<input type="radio" name="seibetu" value="男" <% if(seibetu != null){ out.print("checked"); } %> >
|
115
210
|
|
116
|
-
このようにjspにif文を入れてみましたがやはりブラウザの更新でラジオボタンだけ外れてしまいます。
|
211
|
+
このようにjspにif文を入れてみましたがやはりブラウザの更新でラジオボタンだけ外れてしまいます。
|
212
|
+
追記:↑はequalsを使った文字列比較で解決しました(初歩の初歩で恥ずかしい。)
|
1
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
type="text" に関してはvalueに変数を入れ込むことで、
|
12
12
|
フォームを更新してもテキストボックスの中に値が残っている事を確認しました。
|
13
|
-
しかし type="radio" だけうまくいきません。ラジオボタンだけ外れてしま
|
13
|
+
しかし type="radio" だけうまくいきません。ラジオボタンだけ外れてしまいます。
|
14
14
|
|
15
15
|
例えば最初にラジオボタンを「男」にチェックして「submit」した時、
|
16
16
|
login画面に戻って更新をしても性別のみ男と女、どちらもチェックされてない状態で表示されます。
|