상세 컨텐츠

본문 제목

15) getJSON DATA 전달 및 @PathVariable 확장자 인식

Today's Study/Error Note

by Hello-Melo 2022. 8. 15. 01:25

본문

22.08.14

 

 - getJson으로 이메일 중복검사 기능을 구현하려고 했는데 계속 에러가 났다.

 - 처음에는 PathVariable 어노테이션으로 입력받은 이메일 값을 그대로 DB 데이터와 비교하려 했으나 처음에는 확장자를 인식못했고, 나중에는 JSON데이터가 아니라고 인식을 하지 못하는 상황이었다.

 

 - 이를 해결하기 위해 방법을 바꿔서 Boolean 타입으로 만약 중복된다면 1, 아니라면 0을 반환하는 메서드로 바꿔서 코드를 작성했다

 - 하지만 분명 메서드에서는 1이 반환되었는데, 이 값이 화면단으로 넘어가질 않는 것이었다.

 

 - 위의 메서드로 실행했을때는 화면단에서 result 값을 반환받지 못했다. 그래서 아래 메서드로 변환하여 실행하니 화면단에 result 값이 전달되어 중복체크를 할 수 있었다.

 - 생각해보면 당연한 것이 JSON으로 쓰러면 RESTful 방식이기에 아래쪽 메서드를 써야하는게 당연했는데, 이 방법에 익숙치 않아서 그런가 여기까지 도달하는데 너무 오랜시간이 걸렸다.

 

  - 화면단에서는 이메일 중복 검사 버튼을 클릭시 JSON을 불러주고, 입력받은 이메일 주소를 컨트롤러단에 넘겨주고, 리턴되는 result 값을 data라는 변수로 받아서 사용한 것!

 

 

 - 그리고 @PathVariable 어노테이션을 사용할 때는 따로 처리하지 않으면 확장자가 붙은 이름은 인식하지 못한다(이메일도 그래서 인식을 하지 못하고 hoon@dream.com 을 hoon@dream 이라고만 인식했음)

 - 이를 해결하기 위해서는 Mapping 부분에 {userEmail}이라고 선언했다면 {userEmailL:.+} 처럼 :.+를 추가해주면 확장자도 인식하게 된다.

 

 - 이것처럼getMapping value 값의 page뒤에 :.+를 추가해주는 것!!

 - 이렇게 하면 확장자 까지 인식해서 메일 주소 전체가 데이터로 넘어가게 된다!

관련글 더보기

댓글 영역