teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

実際のサーブレット側のコードを追記します。

2021/02/07 09:40

投稿

komekome0101
komekome0101

スコア14

title CHANGED
File without changes
body CHANGED
@@ -46,10 +46,58 @@
46
46
  }
47
47
  このように設計して
48
48
  サーブレットで
49
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
50
+ EntityManager em = DBUtil.createEntityManager();
51
+
52
+
53
+
54
+ int page = 1;
55
+ try{
56
+ page = Integer.parseInt(request.getParameter("page"));
57
+ } catch(NumberFormatException e) { }
58
+ List<Employee> employees = em.createNamedQuery("getAllEmployees", Employee.class)
59
+ .setFirstResult(15 * (page - 1))
60
+ .setMaxResults(15)
61
+ .getResultList();
62
+
63
+ long employees_count = (long)em.createNamedQuery("getEmployeesCount", Long.class)
64
+ .getSingleResult();
65
+ //現在ログインしているユーザーのID
66
+ Integer id;
67
+ Employee login_employee = (Employee)request.getSession().getAttribute("login_employee");
68
+ id=login_employee.getId();
69
+ //現在ログインしているユーザーのIDをもとにフォローリストテーブルデータを取得
49
- List<Employee> follow_list =em.createNamedQuery("getMyfollowlist", Employee.class)
70
+ List<Employee> follow_list =em.createNamedQuery("getMyfollowlist", Employee.class)
50
71
  .setParameter("id",id)
51
72
  .getResultList();
52
73
 
74
+ em.close();
75
+ //現在ログインしているユーザーが、employeesで取得した格社員をフォローしているかしていないかをMapで管理
76
+ Map<Integer,Boolean> map = new HashMap<>();
77
+ employees.forEach(employee -> {
78
+ if(follow_list.contains(employee.getId())){
79
+ map.put(employee.getId(), true);
80
+ }else {
81
+ map.put(employee.getId(), false);
82
+ };
83
+
84
+ });
85
+
86
+
87
+ request.setAttribute("employees", employees);
88
+ request.setAttribute("employees_count", employees_count);
89
+ request.setAttribute("page", page);
90
+ request.setAttribute("map", map);
91
+ if(request.getSession().getAttribute("flush") != null) {
92
+ request.setAttribute("flush", request.getSession().getAttribute("flush"));
93
+ request.getSession().removeAttribute("flush");
94
+ }
95
+
96
+ RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/followlist/index.jsp");
97
+ rd.forward(request, response);
98
+ }
99
+
100
+
53
101
  のようにフォローした社員情報をList型で取得したいのですが
54
102
  Parameter value [1] did not match expected type [models.Employee (n/a)]
55
103
  というエラーが出てしまいます。Employeeは社員情報のクラスDAOです。