Vector를 이용하여 데이터베이스에 있는 멤버들을 모아서 forEach문으로 테이블 작성하려고 했으나 getName()을 찾을 수 없다는 에러 발생함.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="memberDelete.do" method="post" name="frm">
<table>
<tr>
<th>이름</th>
<th>아이디</th>
<th>비밀번호</th>
<th>이메일</th>
<th>전화번호</th>
<th>관리자 여부</th>
</tr>
<c:forEach var="member" items="${mlist } ">
<tr>
<td>${member.getName() }</td>
<td>${member.getUserid() }</td>
<td>${member.getPwd() }</td>
<td>${member.getEmail() }</td>
<td>${member.getPhone() }</td>
<td>${member.getAdmin() }</td>
</tr>
</c:forEach>
<tr>
<td>
<select name="userid">
<c:forEach var="mid" items="${mlist }">
<option value="${mid.getUserid() }">${mid.getUserid() }</option>
</c:forEach>
</select>
<input type="submit" value="삭제">
</td>
</tr>
</table>
</form>
</body>
</html>
package com.saeyan.controller;
import java.io.IOException;
import java.util.Vector;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.saeyan.dao.MemberDAO;
import com.saeyan.dto.MemberVO;
/**
* Servlet implementation class memberDelete
*/
@WebServlet("/memberDelete.do")
public class memberDelete extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public memberDelete() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
MemberDAO mDao = MemberDAO.getInstance();
Vector<MemberVO> mlist = mDao.memberList();
request.setAttribute("mlist", mlist);
System.out.println(mlist);
RequestDispatcher rd = request.getRequestDispatcher("member/memberDelete.jsp");
rd.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
request.setCharacterEncoding("UTF-8");
String url = "login.do";
String userid = request.getParameter("userid");
MemberDAO mDAO = MemberDAO.getInstance();
mDAO.deleteMember(userid);
response.sendRedirect(url);
}
}
public Vector<MemberVO> memberList() {
String sql = "select * from member";
Vector<MemberVO> mlist = new Vector<>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
MemberVO mVo = new MemberVO();
mVo.setName(rs.getString("name"));
mVo.setUserid(rs.getString("userid"));
mVo.setPwd(rs.getString("pwd"));
mVo.setEmail(rs.getString("email"));
mVo.setPhone(rs.getString("phone"));
mVo.setAdmin(Integer.parseInt(rs.getString("admin")));
mlist.add(mVo);
}
} catch (Exception e) {
System.out.println(e);
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return mlist;
}
public int deleteMember(String userid) {
int result = -1;
String sql = "delete from member where userid=?";
PreparedStatement pstmt = null;
Connection conn = null;
try {
conn = getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userid);
result = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception e) {
} finally {
}
}
return result;
}
<c:forEach var="member" items="${mlist }"> //띄워쓰기 없이 수정 후 문제해결함!
빨간색으로 표시한 부분 공백이 있어 el.Method 에러가 발생했다. 3/31일에 에러 발생하여 반에서 잘하는 친구들에게 물어보고 챗지피티에도 물어보다가 4/5일 코드 다시 확인하던 중 에러 발생부위 발견해서 해결했다. 추후 에러 발생 시 띄워쓰기도 다시 봐야되겠다.