一覧画面(employeelist.jsp)でラジオボタンでテーブルの行を選択して、
更新ボタンを押し、更新画面(update.jsp)遷移させ、
そこで選択した行の情報を更新したいのですが、
在職(retired)だけ更新されなくて困っています。
よろしくお願いします。
一覧画面(employeelist.jsp)
<%@ page contentType="text/html; charset=UTF-8"%> <%@ page import="java.util.List,kadai.Tableclass"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>社員一覧</title> </head> <body> <h2>社員一覧</h2> <table border="1"> <tr bgcolor="#afeeee"> <th></th> <th>社員コード</th> <th>氏名</th> <th>氏名カナ</th> <th>性別</th> <th>役職名</th> <th>所属部署名</th> <th>在職情報</th> <form action="UpdateServlet" id="form" name="form"> <c:forEach var="item" items="${list}" varStatus="num"> <tr> <td><input type="radio" name="radio" value="${num.index}"></td> <td>${item.s_id}</td> <td>${item.name }</td> <td>${item.name_kana }</td> <td>${item.sex }</td> <td>${item.clas }</td> <td>${item.depart_name }</td> <td>${item.retired }</td> </tr> </c:forEach> </table> <br> <input type="submit" value="削除" onclick="goServlet();"> <input type="button" value="登録" onclick="location.href='DepartServlet'"> <input type="submit" value="更新" > <!-- UpdateServlet --> <input type="button" value="戻る" onclick="location.href='kintaikanrisystem.jsp'"> </form> </body> </html>
UpdateServlet
package kadai; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Updatehokanko */ public class UpdateServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public UpdateServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=UTF-8"); request.setCharacterEncoding("UTF-8"); System.out.println("UpdateServletに接続しました。"); Connection con =null; Statement smt=null; String num1=request.getParameter("radio"); int num=Integer.parseInt(num1); String sql = "SELECT e.s_id,e.l_name,e.f_name,e.l_name_kana,e.f_name_kana,e.sex,e.class,e.depart_id,e.last_update,e.retired,d.depart_id,d.depart_name FROM employee AS e INNER JOIN depart AS d ON e.depart_id=d.depart_id limit "+num+","+1; try{ con=DBManager.getConnection(); smt=con.createStatement(); ResultSet rs =smt.executeQuery(sql); List<Tableclass> list=new ArrayList<Tableclass>(); while(rs.next()){ Tableclass tableclass=new Tableclass(); tableclass.setS_id(rs.getString("S_id")); tableclass.setL_name(rs.getString("L_name")); tableclass.setF_name(rs.getString("F_name")); tableclass.setL_name_kana(rs.getString("L_name_kana")); tableclass.setF_name_kana(rs.getString("F_name_kana")); tableclass.setSex(rs.getInt("Sex")); tableclass.setClas(rs.getString("class")); tableclass.setDepart_name(rs.getString("depart_name")); tableclass.setRetired(rs.getInt("Retired")); list.add(tableclass); } request.setAttribute("list",list); }catch(SQLException e){ throw new ServletException(e); }finally{ if(smt != null){ try{smt.close();}catch(SQLException ignore){} }if(smt != null){ try{con.close();}catch(SQLException ignore){} } } String url = "/UpdateDepartServlet"; RequestDispatcher dispatch = request.getRequestDispatcher(url); dispatch.include(request, response); request.getRequestDispatcher("/update.jsp").forward(request,response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
update.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h2>社員更新</h2> <form action="Update"> <c:forEach var="item1" items="${list}"> <table border="1"> <tr> <td>社員コード</td> <td><input type="text" name="new_id" value="${item1.s_id}" readonly="readonly" > </td> <!-- readonly「読み出し専用指定」 --> </tr> <tr> <td>氏名(姓)</td> <td><input type="text" name="new_name1" maxlength='20' value="${item1.l_name}"></td> <td>氏名(名)</td> <td><input type="text" name="new_name2" maxlength='20' value="${item1.f_name}"></td> </tr> <tr> <td>氏名カナ(姓)</td> <td><input type="text" name="new_kananame1" maxlength='100' value="${item1.l_name_kana}"></td> <td>氏名カナ(名)</td> <td><input type="text" name="new_kananame2" maxlength='100' value="${item1.f_name_kana}"></td> </tr> <tr> <td>性別</td> <td><input type="radio" name="sex" value="1" id="otoko"><label for="otoko">男</label></td> <td><input type="radio" name="sex" value="2" id="onna"><label for="onna">女</label></td> <td><input type="radio" name="sex" value="3" id="sonota"><label for="sonota">その他</label></td> </tr> <script type="text/javascript"> document.forms[0].sex["${item1.sex}"-1].checked = true; </script> <tr> <td>役職名</td> <td><select name="new_class" id="new_class"> <option value="部長">部長 <option value="課長">課長 <option value="主任">主任 <option value="担当">担当 <option value="アシスタント">アシスタント </select></td> </tr> <script type="text/javascript"> var options = document.getElementById('new_class').options; for(var i = 0; i < options.length; i++){ if(options[i].text === '${item1.clas}'){ options[i].selected = true; break; };}; </script> <tr> <td>所属部署名</td> <td><select name="new_depart_name" id="new_depart_name"> <c:forEach var="item2" items="${list1}" varStatus="status2"> <option value="${item2.depart_id}">${item2.depart_name} </c:forEach> </select></td> </tr> <script type="text/javascript"> var options = document.getElementById('new_depart_name').options; for(var i = 0; i < options.length; i++){ if(options[i].text === '${item1.depart_name}'){ options[i].selected = true; break; };}; </script> <tr> <td>在職</td> <td><input type="radio" name="retired" value="0">在職</td> <td><input type="radio" name="retired" value="1">退職</td> <script type="text/javascript"> document.forms[0].retired["${item1.retired}"].checked = true; </script> </tr> </table> </c:forEach> <br> <input type="submit" name="update" value="更新"> <input type="button" name="return" value="戻る" onclick="location.href='KintaikanrisystemServlet'"> </form> </body> </html>
文字制限のため Update.java を回答に記載しました。
回答2件
あなたの回答
tips
プレビュー