회원정보보기 기능 구현 (내 프로젝트에 적용)

Back-End/Spring 2019. 9. 19. 17:31
728x90
반응형

관리자로 로그인 했을때만 관리자 메뉴가 나오게 하고, 정보를 확인할 회원의 아이디를 입력한 후에 "확인" 버튼을 누르면 


해당 회원의 정보가 출력되고, 해당하는 회원이 없다면 경고창이 출력되도록 구현해보기



member_info.jsp (view)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="com.thoughtworks.qdox.parser.ParseException"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
 
</head>
<%@ include file="../include/header.jsp"%>
<%@ include file="../include/menu.jsp"%><br>
<body>
 
<!-- 회원정보에 없는 아이디를 입력할 시에 출력되는 경고창 -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(function(){
    var responseMessage = "<c:out value="${message}" />";
    if (responseMessage != ""){
        alert(responseMessage)
    }
})
</script>
 
 
        <center>
        <br>
        <br>
        <br>
        <span style="color: green; font-weight: bold;">회원 정보 검색</span> <br> <br>
        </center>
 
<!-- 회원의 아이디를 입력하면 해당 회원에 정보가 하단에 출력되게 함 -->
<form action = "find_member.do" method = "post">
<center>
회원 아이디 : <input type="text" name="user_id" placeholder="아이디를 입력하세요.">
<button type = "submit" name = "submit" >확인</button><br><br><br>
</center>
</form>
 
<c:if test = "${map.list != null}">
 
 
<center>
 
<span style="color: green; font-weight: bold;">해당하는 회원 정보</span> <br> <br>
 
<table border="1" width="300" height="250">
    
        <div style="text-align:center;">
            <tr>        
                <td>
                    
                    <center>
                        <div>    
    <c:forEach var = "member" items = "${map.list}"><!-- 컨트롤러에서 넘어온 map의 값 --> 
    
                            아이디 : ${member.user_id} <br><br>
                            
                            이메일 : ${member.e_mail} <br><br>
                            
                            가입날짜 : ${member.join_date} <br><br>
                            
                        </div>                        
                        
                        
                    </center>
                        
                    </td>
                </tr>
                </div>
                </c:forEach>
            </table>
            </center>
 
</c:if>
 
 
 
<br><br><%@ include file="../include/Botton.jsp"%>
</body>
</html>
cs




AdminController.java (컨트롤러 중 일부)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//회원아이디로 해당 회원의 정보를 검색하는 메소드
    @RequestMapping(value = "/admin/find_member.do")
    public ModelAndView find_member_info(String user_id, MemberDTO dto, Date join_date) throws Exception{
        
        //데이터베이스에서 검색한 값들을 DTO타입에 LIST에 저장한다.
        java.util.List<MemberDTO> list = adminservice.find_member_info(user_id);     //넘길 데이터가 많기 때문에        
        
        Map<String,Object> map = new HashMap<>();
        
        
        //map에 리스트를 저장해서 출력할 view로 이동시킨다.
        
        //list가 null이면 회원정보가 없는것이므로 경고창을 출력하도록 함
        
        ModelAndView mv = new ModelAndView();
        
        //if문에서 list null처리를 할때에는 isEmpty()를 사용해서 null체크후 처리를 해주어야 한다.

        //list안에 값이 들어있을때 실행되는 구문

        if(!list.isEmpty()) {
            
            //join_date의 형식을 바꾸어야 하기 때문에 join_date만 따로 빼서 형식을 변경한 후에 따로 넘긴다.

            for (int i = 0; i<list.size(); i++) {
                
                join_date = list.get(i).getJoin_date();
                
            }
            
            String re_join_date = new SimpleDateFormat("yyyy-MM-dd").format(join_date);
            
            map.put("re_join_date", re_join_date);
            
            map.put("list", list);
            
            mv.addObject("map",map);
            
            mv.setViewName("admin/member_info");
            
        }else {
            
            mv.addObject("message""회원정보가 없는 회원입니다.");
            
            mv.setViewName("admin/member_info");
        }
        
        
        
        return mv;
    }
cs



AdminServiceImpl.java 중 일부


1
2
3
4
5
6
//회원 정보 검색 메소드
    @Override
    public List<MemberDTO> find_member_info(String user_id) throws Exception {
        
        return admindao.member_info(user_id);
    }
cs




AdminDAOImpl.java 중 일부


1
2
3
4
5
6
7
   //회원의 정보를 리턴함
    @Override
    public List<MemberDTO> member_info(String user_id) throws Exception {
        
        return sqlSession.selectList("admin.member_info", user_id);
    }
 
cs




adminMapper.xml 중 일부


1
2
3
4
5
6
<!-- 회원 정보 찾기 관련 mapper -->

    <select id="member_info" resultType="com.example.hansub_project.model.member.dto.MemberDTO">
        select user_id, e_mail, join_date
        from member
        where user_id=#{user_id}
    </select>
cs



-실행 화면-











728x90
반응형
: