前提・実現したいこと
初投稿です。
以下の機能を実現しようとしています。
- 名前、性別、趣味の情報をフォームによって送信する。
- フォームによって値を送信すると,次回アクセス時にその値がフォームの初期値として入力された状態にする。
- セッションを利用すること
発生している問題
性別と趣味はテキストボックス(input type="text")で対応し、性別はラジオボタン(input type="radio")で対応するとしたとき、テキストボックスに入力したものをセッションに保持することはできたのですがラジオボタンで選択した値の保持が分かりません。
JSPでフォーム送信、サーブレットでセッションをsetする構成で考えています。
JSPファイルのソースコード
Java
1<html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 <title>Session Get JSP</title> 5 </head> 6 <% 7 String name = (String)session.getAttribute("name"); 8 if (name == null) { 9 name = ""; 10 } 11 String hobby = (String)session.getAttribute("hobby"); 12 if (hobby == null) { 13 hobby = ""; 14 } 15 %> 16 <body> 17 <form action="./session_set" method="post"> 18 名前:<input type="text" name="myName" value=<%= name%>><br> 19 性別:<input type="radio" name="myGender" value="male">男 20 <input type="radio" name="myGender" value="female">女<br> 21 趣味:<input type="text" name="myHobby" value=<%= hobby%>><br> 22 <br><br> 23 <input type="submit" value="Submit"> 24 </form> 25 </body> 26</html>
サーブレットファイルのソースコード
Java
1public class session_set extends HttpServlet { 2 3 protected void processRequest(HttpServletRequest request, HttpServletResponse response) 4 throws ServletException, IOException { 5 response.setContentType("text/html;charset=UTF-8"); 6 try (PrintWriter out = response.getWriter()) { 7 8 String name = request.getParameter("myName"); 9 String hobby = request.getParameter("myHobby"); 10 11 HttpSession session = request.getSession(); 12 13 session.setAttribute("name", name); 14 session.setAttribute("hobby", hobby); 15 16 out.print("送信が完了" + "<br><br>"); 17 out.print("<a href=\"session_get.jsp\">前のページへ戻る</a>"); 18 } 19 }
試したこと
テキストボックスに対しては、getAttributeしたものをフォームのvalueに代入することでできたのですが、ラジオボタンにはどうやって「前回のアクセスで(例えば)女を選択した」ことを記憶させるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/13 02:48