#はじめに
いつもお世話になっております。
現在、jsp/Servlet/MySQLを使って
ログイン機能を持つ社員管理リストを作成しています。
MySQL8.0
Tomcat7
#困ったこと
ServletでDBから値を取得し、jspに投げて表示させたいのですが
値が出てきません。。(エラーはなく、問題なくページ遷移できています)
#皆様にお聞きしたいこと
なぜ表示されないのか、ご教授願いたいです。
作成したDaoクラス、Beansクラス、Servletクラス、Jspファイルを載せておきます。
宜しくお願い致します。
EmployeeListServlet
1package servlet; 2 3import java.io.IOException; 4import java.util.List; 5 6import javax.servlet.RequestDispatcher; 7import javax.servlet.ServletException; 8import javax.servlet.annotation.WebServlet; 9import javax.servlet.http.HttpServlet; 10import javax.servlet.http.HttpServletRequest; 11import javax.servlet.http.HttpServletResponse; 12 13import model.EmployeeList; 14import model.GetEmployeeListLogic; 15 16/** 17 * Servlet implementation class LoginServlet 18 */ 19@WebServlet("/EmployeeListServlet") 20public class EmployeeListServlet extends HttpServlet { 21 private static final long serialVersionUID = 1L; 22 23 24 protected void doPost(HttpServletRequest request, 25 HttpServletResponse response) 26 throws ServletException, IOException { 27 28 29 //社員リストを取得して、リクエストスコープに保存 30 GetEmployeeListLogic getEmployeeListLogic = new GetEmployeeListLogic(); 31 List<EmployeeList> employeeList = getEmployeeListLogic.execute(); 32 request.setAttribute("employeeList", employeeList); 33 34 //フォワード 35 RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/loginOK.jsp"); 36 dispatcher.forward(request, response); 37 } 38 39} 40
EmployeeListDao
1package dao; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.PreparedStatement; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8import java.util.ArrayList; 9import java.util.List; 10 11import model.EmployeeList; 12 13public class EmployeeListDAO { 14 15 private final String DRIVER_NAME = "com.mysql.jdbc.Driver"; 16 private final String JDBC_URL = "jdbc:mysql://localhost:3306/kadai?characterEncoding=UTF-8&serverTimezone=JST&useSSL=false"; 17 private final String DB_USER = "root"; 18 private final String DB_PASS = "naoto7010"; 19 20 Connection conn = null; 21 List<EmployeeList> empList = new ArrayList<EmployeeList>(); 22 23 public List<EmployeeList> findAll(){ 24 //ドライバの読み込み 25 try { 26 Class.forName(DRIVER_NAME); 27 conn = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS); 28 29 30 String sql = "SELECT EMPLOYEE_ID, NAME, NAME_HIRAGANA FROM EMPLOYEE_INFO"; 31 PreparedStatement pStmt = conn.prepareStatement(sql); 32 33 //SELECTを実行 34 ResultSet rs = pStmt.executeQuery(); 35 36 //SELECT文の結果をArrayListに格納 37 while(rs.next()) { 38 int employee_id = rs.getInt("EMPLOYEE_ID"); 39 String name = rs.getString("NAME"); 40 String name_hiragana = rs.getString("NAME_HIRAGANA"); 41 EmployeeList employeeList = new EmployeeList(employee_id,name,name_hiragana) ; 42 empList.add(employeeList); 43 44 } 45 46 }catch(SQLException e){ 47 e.printStackTrace(); 48 }catch(ClassNotFoundException e) { 49 e.printStackTrace(); 50 }finally { 51 //データベース切断 52 if(conn != null) { 53 try { 54 conn.close(); 55 }catch(SQLException e) { 56 e.printStackTrace(); 57 return null; 58 } 59 } 60 } 61 return empList; 62 } 63} 64
GetEmployeeListLogic
1package model; 2 3import java.util.List; 4 5import dao.EmployeeListDAO; 6 7public class GetEmployeeListLogic { 8 9 public List<EmployeeList> execute(){ 10 11 EmployeeListDAO dao = new EmployeeListDAO(); 12 List<EmployeeList> employeeList = dao.findAll(); 13 return employeeList; 14 } 15 16} 17
EmployeeList
1package model; 2 3import java.io.Serializable; 4 5public class EmployeeList implements Serializable{ 6 7 private int employee_id; 8 private String name; 9 private String name_hiragana; 10 11 public EmployeeList() { 12 13 } 14 15 public EmployeeList(int employee_id, String name, String name_hiragana) { 16 17 this.employee_id = employee_id; 18 this.name = name; 19 this.name_hiragana = name_hiragana; 20 } 21 22 public int getNumber() { 23 return employee_id; 24 } 25 public String getName() { 26 return name; 27 } 28 public String getName_hiragana() { 29 return name_hiragana; 30 } 31 32 33 public void setNumber(int employee_id) { 34 this.employee_id = employee_id; 35 } 36 public void setName(String name) { 37 this.name = name; 38 } 39 public void setName_hiragana(String name_hiragana) { 40 this.name_hiragana = name_hiragana; 41 } 42 43 44} 45
jsp
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<head> 7<meta charset="UTF-8"> 8<title>社員データ</title> 9</head> 10<body> 11 社員データを表示 12 <br> 13 <table> 14 <tr> 15 <th>No</th> 16 <th>名前</th> 17 <th>ひらがな</th> 18 </tr> 19 20 <c:forEach items="${empList}" var="empList"> 21 <tr> 22 <td><c:out value="${empList.employee_id}" /></td> 23 <td><c:out value="${empList.name}" /></td> 24 <td><c:out value="${empList.name_hiragana}" /></td> 25 </tr> 26 </c:forEach> 27 28 </table> 29</body> 30</html> 31
2018/11/02 追記
ご回答いただいた内容を受け、jspを一部修正しました。
jsp
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<head> 7<meta charset="UTF-8"> 8<title>社員データ</title> 9</head> 10<body> 11 社員データを表示 12 <br> 13 <table> 14 <tr> 15 <th>No</th> 16 <th>名前</th> 17 <th>ひらがな</th> 18 </tr> 19 20 <c:forEach items="${employeeList}" var="emp"> 21 <tr> 22 <td><c:out value="${empList.employee_id}" /></td> 23 <td><c:out value="${empList.name}" /></td> 24 <td><c:out value="${empList.name_hiragana}" /></td> 25 </tr> 26 </c:forEach> 27 28 </table> 29</body> 30</html>
回答1件
あなたの回答
tips
プレビュー