表題について質問があります。
社員データの管理システムを、MVCモデルを利用して作成しております。
以下の流れで社員データの詳細画面を表示させたいのですが、
表示させたときに各項目で表示させたい値と取得してきた値にずれが生じております。
(生年月日の欄にメールアドレスが表示されているetc)
①list.jspでデータの一覧を表示
②「詳細」リンクを押し、EmployeeControlServletにて詳細画面へ遷移する処理を実行
③EmployeeListDAOにてデータベースより値を取得
③detail.jspで詳細画面を表示
コードは以下となります。
なぜ表示がずれてしまうのか、ご教授いただければ幸いです。
EmployeeListDAO
1 2public class EmployeeListDAO { 3 4 //定数宣言 5 private final String useSSL = ""; 6 private final String userName = ""; 7 private final String password = ""; 8 private final String jdbcDriver = ""; 9 10 public EmployeeInfo employeeGet(String employee_id) throws Exception{ 11 12 EmployeeInfo employeeInfo = null; 13 Connection conn = null; 14 PreparedStatement pStmt = null; 15 ResultSet rs = null; 16 int employeeId ; 17 18 try { 19 //社員IDをint型へ変換 20 employeeId = Integer.parseInt(employee_id); 21 //JDBCドライバを読み込む 22 Class.forName(jdbcDriver); 23 //データベース接続 24 conn = DriverManager.getConnection(useSSL,userName,password); 25 //SELECT文を準備 26 String sql = "SELECT E1.EMPLOYEE_ID,E1.NAME,E1.NAME_HIRAGANA,E1.BIRTHDAY,E1.SEX,E1.MAIL_ADDRESS,E1.TELEPHONE_NUMBER,E1.COMPANY_INFO_ID,E1.BUSINESS_MANAGER,E1.DEPARTMENT,E1.COMMISSIONING_STATUS,E2.ENTER_DATE,E2.RETIRE_DATE,E2.STATUS " + 27 "FROM EMPLOYEE_INFO AS E1 " + 28 "INNER JOIN EMPLOYEE_STATE AS E2 " + 29 "ON E1.EMPLOYEE_ID = E2.EMPLOYEE_INFO_ID " + 30 "WHERE E1.EMPLOYEE_ID = ?;"; 31 32 //SQLを設定 33 pStmt = conn.prepareStatement(sql); 34 35 //パラメータをセット 36 pStmt.setInt(1,employeeId); 37 38 //SELECT文を実行し、結果表を取得 39 rs = pStmt.executeQuery(); 40 41 //取り出したデータをemployeeListに設置 42 if(rs.next()) { 43 44 //結果表からデータを取得 45 String name = rs.getString("NAME"); 46 String name_hiragana = rs.getString("NAME_HIRAGANA"); 47 String sex = rs.getString("SEX"); 48 String mail_address = rs.getString("MAIL_ADDRESS"); 49 String business_manager = rs.getString("BUSINESS_MANAGER"); 50 String telephone_number = rs.getString("TELEPHONE_NUMBER"); 51 String birthday = rs.getString("BIRTHDAY"); 52 String enter_date = rs.getString("ENTER_DATE"); 53 String retire_date = rs.getString("RETIRE_DATE"); 54 String company_info_id = rs.getString("COMPANY_INFO_ID"); 55 String department = rs.getString("DEPARTMENT"); 56 String commissioning_status = rs.getString("COMMISSIONING_STATUS"); 57 String status = rs.getString("STATUS"); 58 59 employeeInfo = new EmployeeInfo(employeeId,name,name_hiragana,sex,mail_address,business_manager,telephone_number,birthday,enter_date,retire_date,company_info_id,department,commissioning_status,status); 60 } 61 else { 62 throw new Exception("社員IDが見つかりませんでした:"+ employeeId); 63 } 64 }finally { 65 //データベースを切断 66 if(conn != null) { 67 68 try { 69 conn.close(); 70 71 }catch(SQLException e) { 72 e.printStackTrace(); 73 74 return null; 75 } 76 } 77 } 78 return employeeInfo; 79 } 80} 81
detail
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4<!DOCTYPE html> 5<html> 6 7<head> 8<meta charset="UTF-8"> 9<title>社員詳細</title> 10 11<link type="text/css" rel="stylesheet" href="css/style.css"> 12<link type="text/css" rel="stylesheet" href="css/add-employee-style.css"> 13</head> 14 15<body> 16 17 <div id="container"> 18 <h3>社員詳細</h3> 19 20 <form action="EmployeeControlServlet" method="POST"> 21 22 <c:choose> 23 24 <c:when test="${THE_EMPLOYEE.employee_id == null }"> 25 <input type="hidden" name="command" value="ADD" /> 26 </c:when> 27 28 <c:when test="${THE_EMPLOYEE.employee_id != null }"> 29 <input type="hidden" name="command" value="UPDATE" /> 30 <input type="hidden" name="employee_id" 31 value="${THE_EMPLOYEE.employee_id}" /> 32 </c:when> 33 34 <c:otherwise> 35 エラーが発生しました 36 </c:otherwise> 37 </c:choose> 38 39 <table> 40 <tbody> 41 <tr> 42 <td><label>氏名</label></td> 43 <td><input type="text" name="name" 44 value="${THE_EMPLOYEE.name }" maxlength="20" /></td> 45 </tr> 46 47 <tr> 48 <td><label>氏名(ひらがな)</label></td> 49 <td><input type="text" name="name_hiragana" 50 value="${THE_EMPLOYEE.name_hiragana }" maxlength="20" /></td> 51 </tr> 52 53 <tr> 54 <td><label>生年月日</label></td> 55 <td><input type="text" name="birthday" 56 value="${THE_EMPLOYEE.birthday }" maxlength="10" /></td> 57 </tr> 58 59 <tr> 60 <td><label>性別</label></td> 61 <td><input type="radio" name="sex" 62 <c:if test="${THE_EMPLOYEE.sex != '1'}">checked</c:if> value="0" /> 63 男 <input type="radio" name="sex" 64 <c:if test="${THE_EMPLOYEE.sex == '1'}">checked</c:if> value="1" /> 65 女</td> 66 </tr> 67 68 <tr> 69 <td><label>メールアドレス</label></td> 70 <td><input type="text" name="mail_address" 71 value="${THE_EMPLOYEE.mail_address }" maxlength="50" /></td> 72 </tr> 73 <tr> 74 <td><label>電話番号</label></td> 75 <td><input type="text" name="telephone_number" 76 value="${THE_EMPLOYEE.telephone_number }" maxlength="13" /></td> 77 </tr>
EmployeeInfo
1public class EmployeeInfo implements Serializable{ 2 3 private int employee_id; //社員ID employee_info 4 private String name; //氏名 employee_info 5 private String name_hiragana; //氏名(ひらがな) employee_info 6 private String business_manager; //担当管理営業 employee_info 7 private String birthday; //生年月日 employee_info 8 private String sex; //性別 employee_info 9 private String mail_address; //メールアドレス employee_info 10 private String telephone_number; //電話番号 employee_info 11 private String enter_date; //入社日 employee_state 12 private String retire_date; //退社日 employee_state 13 private String company_info_id; //所属会社ID employee_info 14 private String department; //事業部 employee_info 15 private String commissioning_status; //稼働状況 employee_info 16 private String status; //ステータス employee_state 17 18 19 public EmployeeInfo() { 20 21 } 22 23 /** 24 * 社員リストメソッド 25 * list.jsp表示用 26 * 27 * @param employee_id 28 * @param name 29 * @param name_hiragana 30 * @param business_manager 31 * @param birthday 32 * @param enter_date 33 * @param company_info_id 34 * @param department 35 * @param commissioning_status 36 */ 37 public EmployeeInfo(int employee_id, String name,String name_hiragana, String business_manager,String birthday,String enter_date,String company_info_id,String department,String commissioning_status) { 38 39 this.employee_id = employee_id; 40 this.name = name; 41 this.name_hiragana = name_hiragana; 42 this.business_manager = business_manager; 43 this.birthday = birthday; 44 this.enter_date = enter_date; 45 this.company_info_id = company_info_id; 46 this.department = department; 47 this.commissioning_status = commissioning_status; 48 49 } 50 51 /** 52 * 社員リストメソッド 53 * detail.jsp用 54 * 55 * @param name 56 * @param name_hiragana 57 * @param business_manager 58 * @param birthday 59 * @param sex 60 * @param mail_address 61 * @param tel_number 62 * @param company 63 * @param enter_date 64 * @param retire_date 65 * @param company_info_id 66 * @param department 67 * @param commissioning_status 68 * @param status 69 */ 70 public EmployeeInfo(String name,String name_hiragana, String business_manager,String birthday,String sex,String mail_address,String telephone_number,String enter_date,String retire_date,String company_info_id,String department,String commissioning_status,String status) { 71 72 this.name = name; 73 this.name_hiragana = name_hiragana; 74 this.sex = sex; 75 this.mail_address = mail_address; 76 this.business_manager = business_manager; 77 this.telephone_number = telephone_number; 78 this.birthday = birthday; 79 this.enter_date = enter_date; 80 this.retire_date = retire_date; 81 this.company_info_id = company_info_id; 82 this.department = department; 83 this.commissioning_status = commissioning_status; 84 this.status = status; 85 86 } 87 88 public EmployeeInfo(int employee_id,String name,String name_hiragana, String business_manager,String birthday,String sex,String mail_address,String telephone_number,String enter_date,String retire_date,String company_info_id,String department,String commissioning_status,String status) { 89 90 this.employee_id = employee_id; 91 this.name = name; 92 this.name_hiragana = name_hiragana; 93 this.sex = sex; 94 this.mail_address = mail_address; 95 this.business_manager = business_manager; 96 this.telephone_number = telephone_number; 97 this.birthday = birthday; 98 this.enter_date = enter_date; 99 this.retire_date = retire_date; 100 this.company_info_id = company_info_id; 101 this.department = department; 102 this.commissioning_status = commissioning_status; 103 this.status = status; 104 105 } 106 107}
回答2件
あなたの回答
tips
プレビュー