나의 수업일지

인천 일보 아카데미 50일차 -2- Email - 중복체크 (개인저장 내용X)

2023. 5. 2. 23:44
  • Save.jsp
<script>
    const emailCheck = () => {
        let saveEmail = document.getElementById('email');
        let emailResult = document.getElementById('emailResult');
        $.ajax({
            type: "post",
            url: "/emailCheck",
            async: false,
            data: {
            "saveEmail":saveEmail.value
            },
            success: function (res) {
                emailResult.style.color = "green";
                emailResult.innerHTML = res;
                resResult = true;
            },
            error: function () {
                emailResult.style.color = "red";
                emailResult.innerHTML = "중복된 아이디입니다";
                resResult = false;
            }
        });
        return resResult;
    }
</script>

여기서 중요한부분은 async:false 인데

ajax는 비동기 처리방식이지만 async가 false라면 처리방식이 동기로 전환되며

true일 경우 비동기로 처리됩니다 default값은 true이기 때문에 굳이 적지 않아도 상관 없습니다

 

비동기 처리방식일 때에는 ajax의 success , error 부분에서는 값을 가져올 수 없지만

동기 처리방식으로 전환하였기 때문에 resResult에 담긴 값을 가져와 리턴할 수 있습니다

 

 

  • Controller
    @PostMapping(value = "/emailCheck", produces = "application/text; charset=utf-8")
    public ResponseEntity emailCheck(@RequestParam("saveEmail") String saveEmail) {
        String dbEmail = memberService.emailCheck(saveEmail);
        if (dbEmail != null) {
            return new ResponseEntity(HttpStatus.CONFLICT);
        } else {
            return new ResponseEntity("사용 가능", HttpStatus.OK);
        }
    }

 

애초에 Mapper에서는 받아온 Email값을 비교해 정보를 가져오기 때문에

dbEmail에 null값이 리턴된다면 중복 Email이 없다는 말이고

null이 아닌 객체의 정보가 dbEmail에 담겨 있다면 중복된 Email이 있기에 찾아 담아오는것이기 때문에

null인 경우 OK를 null이 아닌경우 error로 넘어가며 다른 결과를 출력합니다

 

 

  • Mapper
    <select id="saveEmail" parameterType="String" resultType="String">
        select memberEmail from member_table where memberEmail = #{saveEmail}
    </select>

대충 Mapper는 이렇게 썻습니다

 

'나의 수업일지' 카테고리의 다른 글

인천 일보 아카데미 52일차 -1- 이미지 업로드 / detail에 이미지 보여주기  (0) 2023.05.07
인천 일보 아카데미 51일차 -1- 비로그인 게시판 만들어보기  (0) 2023.05.07
인천 일보 아카데미 50일차 -1- ajax - json 주고 받기 / ajax - 리턴값 body에 표로 넣기 (@RequestBody) / ajax - ResponseEntity 알아보기  (0) 2023.05.02
인천 일보 아카데미 49일차 -2- ajax - 알아보기 / ajax - 사용해보기 / 동기식?,비동기식? / ajax - 객체리턴 / ajax - list리턴 / ajax - for문  (0) 2023.05.01
인천 일보 아카데미 49일차 -1- Spring Framework 회원정보 수정 - 삭제 만들어보기(제약조건 추가)  (0) 2023.05.01
'나의 수업일지' 카테고리의 다른 글
  • 인천 일보 아카데미 52일차 -1- 이미지 업로드 / detail에 이미지 보여주기
  • 인천 일보 아카데미 51일차 -1- 비로그인 게시판 만들어보기
  • 인천 일보 아카데미 50일차 -1- ajax - json 주고 받기 / ajax - 리턴값 body에 표로 넣기 (@RequestBody) / ajax - ResponseEntity 알아보기
  • 인천 일보 아카데미 49일차 -2- ajax - 알아보기 / ajax - 사용해보기 / 동기식?,비동기식? / ajax - 객체리턴 / ajax - list리턴 / ajax - for문
GUPING
GUPING
안녕하세요 개발자를 꿈꾸는 GUPING 입니다
GUPING
개발자를 꿈꾸는 GUPING
GUPING
전체
오늘
어제
  • 분류 전체보기 (89)
    • 나의 수업일지 (88)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 로그인게시판
  • 검색
  • 버튼2가지이벤트
  • 파일이름(다중)
  • 답변 채택
  • PAGE
  • 여러사진프리뷰
  • 파일이름가져오기
  • 개힘드렁
  • realative
  • 버튼 이벤트 함수 변경
  • Ajax
  • 버튼 이벤트 변경
  • 파일 이름 가져오기
  • 페이징
  • Paging
  • naver
  • 로그인form
  • 지식인
  • 페이징Controller
  • pagingAjax
  • 네이버
  • 다중프리뷰
  • 검색결과페이징
  • 삭제
  • 업로드파일이름출력
  • 틀만들기
  • 클래스 이름 변경
  • 수정
  • 로그인 경고문

최근 댓글

최근 글

hELLO · Designed By 정상우.
GUPING
인천 일보 아카데미 50일차 -2- Email - 중복체크 (개인저장 내용X)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.