질문 수정 유효성 체크 - 입력 값 유지 이슈 해결방법

Woo Yong·2023년 5월 20일
1

Spring

목록 보기
3/15

SpringBoot를 이용하여 Q&A게시판 프로젝트 진행 시 발생한 이슈에 대해 정리한 내용입니다.


질문 수정 시, 입력 값이 null, 공백, 문자열을 검사하기 위해서 Spring Validation을 적용하였다.
하지만 질문 수정 버튼을 클릭할 경우, DB에 저장된 제목, 내용 정보를 가져오지 못하는 문제가 발생하였다.

gif1

오류를 확인해보니 <th:field> 값이 questionForm 값이 들어가있었던 것이다.

img1

처음 수정 페이지에 접속할 때는 questionForm 객체는 null값이기 때문이다.

img2

그래서 해결하기 위해서 고민을 하다가 유효성 검사 시 bindingResult Error가 발생했을 때 question모델을 view에 전달하는 코드를 지우고 신나게 다시 실행했다 😁

img3

그런데 question 모델이 view단에서 사용되고 있어 타입스크립트 오류가 발생하였다... 그리고 form의 action 속성에서는 question.id 값이 치환되서 전달되어야하기 때문에 반드시 필요했다...

생각을 하던 중 bindingError발생 했을 때는 question객체를 전달하는 것이 아니라 반드시 필요한 question의 id값만 전달해야겠다고 생각했다. 그리고 view 단에서는 question 객체가 true라면 ${question.id}값을 사용하고 false라면 ${question_id}값을 사용하도록 코드를 변경하였다.

<QuestionController.java>

<question_modify.html.java>

그리고 실행한 결과 뚜둔 !! 🤩🤩✌️✌️

정상적으로 실행되는 것을 확인할 수 있었다.

profile
Back-End Developer

0개의 댓글