Closed asel0joo closed 1 year ago
: DB에 있는 user_id를 select하여 화면(view)에 띄우기
forget.jsp
<!-- 아이디찾기 --> <div class="tab-pane fade show active" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab" tabindex="0"> <h5 class="text-start">| 아이디 찾기</h5> <form action="loginForm.html"> <div> <table class="table-group-divider container-fluid"> <tbody> <colgroup> <col width="30%"> </colgroup> <tr> <th scope="row">이름</th> <td> <div class="col-md-5"> <input type="name" class="form-control" id="user_name" name="user_name" placeholder="이름을 입력해주세요." autofocus required> </div> </td> </tr> <tr> <th scope="row">회원 가입 시 등록한 이메일</th> <td> <div class="col-md-12"> <div class="row g-1"> <div class="col-md-4"> <input type="text" class="form-control" name="user_email" id="user_email" placeholder="abc123" aria-label="Username" required> </div> <div class="col-md-5"> <div class="input-group"> <span class="input-group-text">@</span> <!-- <input id='name' onchange='printName()' /><div id='result'></div> --> <select class="form-select form-select-sm" id="detail_email" name="detail_email" aria-label=".form-select-sm example" required> <option selected></option> <option value="naver.com">naver.com</option> <option value="hanmail.net">hanmail.net</option> <option value="gmail.com">gmail.com</option> </select> </div> </div> </div> </div> </td> </tr> </tbody> </table> </div> <hr> <div class="d-grid d-sm-block text-end"> <!-- Button trigger modal --> <button type="button" id="findId" name="findId" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal1">아이디찾기</button> </div> </form> </div>
findId 버튼 클릭 시 실행 JavaScript
<script> //아이디 찾기(모달창에 정보 띄우기) $("#findId").click(function() { var csrfHeaderName = "${_csrf.headerName}"; var csrfTokenValue= "${_csrf.token}"; let a = $('#user_email').val()+'@'+$('#detail_email').val() let b = $('#user_name').val() //아이디 찾기 이메일 데이터 넘기기 Todo 성명, 생년월일, 이메일, 성별 모두 넘기기 $.ajax({ beforeSend: function(xhr){ xhr.setRequestHeader(csrfHeaderName, csrfTokenValue);}, type: 'post', url: '/ycc/mypage/findId', headers : {"content-type" : "application/json"}, data: JSON.stringify({user_email:a, user_name:b}), dataType: 'text', success: function(user_id) { if (user_id == "" || user_name == ""){ alert("정보를 다시 확인해주세요.") } else{ let str_length = user_id.length //user_id의 length를 받음 user_id = user_id.substr(0, (str_length/2)) //user_id값의 반만 보여줌 user_id = user_id.padEnd(str_length,"*") //없는 글자 이후 부분을 **로 채움 $(".modal-body #user_id").val(user_id) //모달창에 갑을 전달하는 함수 } }, error: function(){ alert ("error") } }) }) </script>
MemberController.java
// 아이디 찾기 @PostMapping("/mypage/findId") @ResponseBody public String findId(HttpServletResponse response, @RequestBody MemberDto memberDto) throws Exception { return memberService.findId(response, memberDto.getUser_email(), memberDto.getUser_name()); }
MemberServiceImpl.java
//아이디 찾기 @Override public String findId(HttpServletResponse response, String user_email, String user_name) { String user_id = null; try { user_id = memberDao.findId(user_email, user_name); } catch (Exception e) { e.printStackTrace(); } if (user_id == null) { return null; } else { return user_id; } }
MemberDaoImpl.java
//아이디 찾기 @Override public String findId(String user_email, String user_name) throws Exception { Map map = new HashMap(); map.put("user_email", user_email); map.put("user_name", user_name); return session.selectOne(namespace + "findId", map); }
memberMapper.xml
<!-- 아이디 찾기 --> <select id="findId" parameterType="MemberDto" resultType="String"> select user_id from tb_user where user_email = #{user_email} and user_name = #{user_name} </select>
아이디 찾기 완료! ① 아이디의 일부만 띄워줌
아이디 찾기 완료!
① 아이디의 일부만 띄워줌
: DB에 있는 user_id를 select하여 화면(view)에 띄우기
forget.jsp
findId 버튼 클릭 시 실행 JavaScript
forget.jsp
MemberController.java
MemberServiceImpl.java
MemberDaoImpl.java
memberMapper.xml