ssg-java3-240304 / spring-or-death

MIT License
0 stars 8 forks source link

[1일] 회원가입할 수 있습니다. #6

Closed jeongeun1 closed 1 month ago

jeongeun1 commented 2 months ago

🌈 Success criteria

  1. db를 구축합니다. sh계정으로 springdb에 테이블/샘플데이터를 추가합니다.
  2. springboot프로젝트에 웹어플리케이션에 알맞은 starter키워드를 선택하세요.
  3. /app 인덱스페이지를 확인할 수 있습니다.
  4. /regist 회원가입폼 페이지를 통해 회원가입을 처리합니다.
  5. 이메일 중복확인을 비동기로 처리합니다.
  6. 다음 상황에서는 폼이 제출되어서는 안됩니다.
    • 이메일 중복확인을 하지 않은 경우
    • 비밀번호가 일치하지 않은 경우
    • 필수 입력값이 작성되지 않은 경우 image

👷To-do

👓 Review

  1. <작업진행 상황을 스크린샷등 각종 이미지등으로 적극적으로 작성하고, 코드리뷰때 전달합니다.>
jeongeun1 commented 2 months ago

회원가입에 성공했을때, 데이터를 입력한 그 페이지가 아니라 아무 데이터가 입력되어있지 않은 회원가입폼으로 돌아가고 싶은데 window.location.reload(); 를 쓰지 않고 어떻게 해결할 수 있을까요?

@PostMapping("/regist")
    public String regist(@ModelAttribute MemberRegistDto memberRegistDto, RedirectAttributes redirectAttributes){
        log.info("POST /member/regist");
        log.debug("memberRegistDto = {}", memberRegistDto);
        MemberDto memberDto = memberRegistDto.toMemberDto();
        int result = commandService.insertMember(memberDto);
//        redirectAttributes.addFlashAttribute("");
        return "redirect:/member/regist";
    }
document.querySelector("#registerForm").onsubmit = (e) => {
        e.preventDefault();

        if (isclicked !== 1){
            alert("이메일 중복체크를 해주세요.");
            return;
        }

        if ($('#password').val() !== $('#confirmPassword').val()){
            alert("비밀번호가 일치하지 않습니다.");
            return;
        }

        $.ajax({
            url: '[[@{/member/regist}]]',
            method: 'post',
            data : {
                memberEmail : $('#email').val(),
                memberPassword : $('#password').val(),
                memberName : $('#name').val()
            },
            success (data){
                console.log(data);
                alert("회원가입을 축하드립니다.");
                window.location.reload();
            },
            error (error){
                console.log(error);
                alert("회원가입에 실패하셨습니다.");
            }
        });
    }