[스프링 -3]Spring 중복확인 Ajax요청 (아이디 중복확인)

1. 맨처음으로  script 라이브러리를 추가해 주세요  (JSP페이지)

1
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
cs

 

1. JSP 페이지에서 Controller 로 정보 전송하기 위해 작성

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
<script>
$(function(){
 
    
    
    $("#checkId").click(function(){
    
        let member_id = $("#member_id").val();
         
        $.ajax({
            type:'post'//post 형식으로 controller 에 보내기위함!!
            url:"/spring/checkId.do"// 컨트롤러로 가는 mapping 입력
            data: {"member_id":member_id}, // 원하는 값을 중복확인하기위해서  JSON 형태로 DATA 전송
            success: function(data){ 
                if(data == "N"){ // 만약 성공할시
                    result = "사용 가능한 아이디입니다.";
                    $("#result_checkId").html(result).css("color""green");
                    $("#member_pw").trigger("focus");
                 
             }else// 만약 실패할시
                 result="이미 사용중인 아이디입니다.";
                     $("#result_checkId").html(result).css("color","red");
                     $("#member_id").val("").trigger("focus");
             }
                 
         },
            error : function(error){alert(error);}
        });
        
    });
    
});
 
 
</script>
 
</head>
 
<body>
 
<h3>회원정보를 입력해주세요</h3>
 
<form name="joinForm" action="/spring/joinProcess.do" method="post">
    <input type="email" name="member_id" id="member_id" value="" maxlength="80" placeholder="아이디(이메일)" /><br/>
    <input type="button" id="checkId" value="중복검사"><br/>
    <div><span id="result_checkId" style="font-size:12px;"></span></div>
    
    <input type="password" name="member_pw"  value="" maxlength="20" placeholder="비밀번호"><p/>            
    <input type="text" name="member_name" maxlength="40" value="" placeholder="이름"><p/>
    <input type="tel" name="member_phone"  value="" autocomplete="off" placeholder="휴대폰 번호"><p/>
    <input type="submit" value="가입하기">
    <input type="reset"  value="취소하기">
</form> 
 
</body></html>        
cs

2. Controller 로 넘어온값을 service ,dao, mapper 순으로 값을 전달

 

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
 
Controller 부분
 
 
@RequestMapping("/checkId.do")
    //@ResponseBody ajax 값을 바로jsp 로 보내기위해 사용
    public String checkId(@RequestParam("member_id") String id) {
        String result="N";
        
        int flag = ajaxService.checkId(id);
        
        if(flag == 1) result ="Y"; 
        //아이디가 있을시 Y 없을시 N 으로jsp view 로 보냄
        return result;
    }
 
 
Service 부분
 
@Service
public class AjaxService {
    
    private MemberDao memberDao;
    
    @Autowired
    public AjaxService(MemberDao memberDao) {
        this.memberDao = memberDao;
    }
 
    public int checkId(String id) {
        int result = 0;
        
        result = memberDao.checkId(id);
        return result;
    }
    
 
 
}
 
 
Dao 부분
 
public int checkId(String id) {
       
        return sqlSession.selectOne(MAPPER+".checkId", id);
    }
 
 
 
mapper
 
 
<mapper namespace = "ezen.dev.spring.member">
 
    <insert id="joinMember" parameterType="memberVo">
        insert into member(member_id, member_pw, member_name, member_phone) 
         values(#{member_id}, #{member_pw}, #{member_name}, #{member_phone})
    </insert>
    
<!--     <select id="loginMember" parameterType="memberVo" resultType="map">
        select count(*) as member_auth,member_grade from member where member_id=#{member_id} and member_pw=#{member_pw}
    </select> -->
    
    
        <select id="loginMember" parameterType="map" resultType="map">
        select count(*) as member_auth,member_grade from member where member_id=#{member_id} and member_pw=#{member_pw}
    </select>
    
 
<select id="getMemberInfo" parameterType="String" resultType="memberVo">
        select member_id,member_pw,member_name,member_phone from member where member_id=#{member_id}
    </select>
 
 
<select id="checkId" parameterType="String" resultType="int">
        select count(*) from member where member_id=#{member_id}
    </select>
cs

3. 여기까지 되면 정상적으로 작동 되겠습니다 !!