Bepoz
파즈의 공부 일기
Bepoz
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • 공부 기록들 (85)
      • 우테코 (17)
    • Spring (85)
    • Java (43)
    • Infra (17)
    • 책 정리 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Bepoz

파즈의 공부 일기

2020.04.27 미니 프로젝트(3) (유효성 검사, 아이디 중복 확인 처리, 저장처리)
공부 기록들

2020.04.27 미니 프로젝트(3) (유효성 검사, 아이디 중복 확인 처리, 저장처리)

2020. 4. 27. 23:37

label/input/button 등을 form 태그로 변경해 주었고 form:errors 도 추가해 주었다. style 값을 통해 빨간색 글씨로 나오게끔 하였다.

위에서 action 이 user/join_pro 이기에 PostMapping 을 연결해 주었다. 유효성 검사가 목적이기 때문에 Valid 를 해주었고, jsp에서 modelAttribute 값에 맞게 joinUserBean으로 이름을 정해주었다. BindingResult도 해주었다.

밑의 IniBInder는 내가 에러메세지를 커스텀 할 때에 UserController에서 사용하기 때문에 선언해주었다.

검사는 다음과 같은 값으로 해주었다.

커스텀을 위해 UserValidator를 만들어 주었다.

에러 메서지 프로퍼티

를 메세지처리하여 다음과 같이 등록. PropertySourcePlaceholderConfigurer 는 db.properties를 해주기 위에서 맨 위에 

@PropertySource() 가 있는데 이것과 충돌하지 않기 위해서 선언을 해주었다.

 

ㅡㅡㅡㅡㅡㅡㅡㅡ

아이디 중복검사를 하기위해서는 db에서 아이디가 있는지 확인을 하는 것이 우선이다. 그래서 mapper를 만들어 주었다.

user_id 매개변수로 받아와서 user_name 을 검색. mapper 만들어 주었으니 servletappcontext.java에 등록

이제 이걸 dao에서 사용해야겠지?

usermapper 주입받아서 checkUserIdExist 라는 메서드 생성. 이제 Service 로 가자

존재한다면 false 존재하지 않다면 null 를 반환.

이것을 controller에서 주입받아 처리를 해야한다. 응답결과로 보낼 것이 html 데이터가 아니라 그냥 데이터라고 한다면 restcontroller 를 이용하는 것이 훨씬 더 편하다.

restapi 같은 경우에는 클라이언트가 서버에 데이터를 보낼 때 파라미터를 보다는 패스밸류로 더 많이 보낸다. 그래서 PathVariable를 사용한 것이다. RestController의 메서드 같은 경우 문자열이 아닌 다른 것을 반환을 할 때에는 jackson 이용해서 json 바꿔줘야되고 해서 복잡하기 때문에 값을 하나만 보낼 경우에는 가급적 문자열로 바꿔서 보내는 것이 간단하다.

이제 jsp 의 중복확인 버튼에다가 onclick 으로 메서드를 달아주었다. checkUserIdExist().

동일 jsp 파일에 head가 끝나고 body가 시작되기 전에 script 로 메서드를 정의해 주었다.

존재 유무에 따라 userIdExist 밸류 값을 true/false로 변경시키는데, 자동주입이 되고 이런 변수를 사용하기 위해서는 form 태그 안에 path 값으로 선언이 되어있어야 한다. 따라서, form:form 밑에 form:hidden 으로 눈에 보이지는 않지만 path 값을 선언해주었다. 물론 userIdExist는 UserBean.class 에 변수 선언을 하고 getter/setter 또한 추가해주어야 한다.

validator에 추가로 이 useridExist()를 추가해주었다.

그리고 만약 중복체크를 해서 중복이 아니라고 떴는데 다시 재입력하거나 그럴 때에도 다시 중복확인을 해야될 것이다. 그렇기에 id 부분을 다시 누르면 userIdExist 값이 false가 되게끔 form:input 태그 부분에 onkeypress를 이용해서 resetUserIdExist() 메서드를 넣어주었고, script 태그안에 그 메서드를 선언해준 것을 볼 수가 있다.

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

이제 저장처리를 해보겠다.

mapper 설정이다. 평소 스타일 처럼 insert into user_table (~~) 사용하려 했는데 오류가 계속 떠서

앞에 값 지정해주고 values(~~) 를 해주었다. 그리고 query문 쭉 쓰다가 짤라야 되겠다 하는 부분에서 엔터치면

알아서 큰따옴표랑 + 붙여주더라.

dao,service,controller 부분은 이제 너무나도 자연스러운 것...

성공시에 alert와 함께, 자바스크립트에서 페이지 이동을 할 때 쓰이는 location.href 로 user/login 으로 이동시켰다.

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

아까 스크립트 메서드 선언 중에 ajax 통신을 이용한 것이 있는데, 이것을 정리해봐야겠다. 내일..

 

 

 

'공부 기록들' 카테고리의 다른 글

2020.04.29 미니 프로젝트(5) (정보수정)  (0) 2020.04.29
2020.04.28 미니 프로젝트(4) (로그인 처리, 로그인 확인 처리, 상단 메뉴 처리)  (0) 2020.04.28
2020.04.26 - 미니프로젝트(2) (상단 메뉴 db 가져와서 구성하기)  (0) 2020.04.26
2020.04.24 - 미니프로젝트(1) (틀 구성하고 페이지 연결하기)  (0) 2020.04.24
2020.04.22~23 - MVC(8) (예외처리, MyBatis Java, MyBatis XML, RestController)  (0) 2020.04.23
    '공부 기록들' 카테고리의 다른 글
    • 2020.04.29 미니 프로젝트(5) (정보수정)
    • 2020.04.28 미니 프로젝트(4) (로그인 처리, 로그인 확인 처리, 상단 메뉴 처리)
    • 2020.04.26 - 미니프로젝트(2) (상단 메뉴 db 가져와서 구성하기)
    • 2020.04.24 - 미니프로젝트(1) (틀 구성하고 페이지 연결하기)
    Bepoz
    Bepoz
    https://github.com/Be-poz/TIL

    티스토리툴바