질문 수정 시, 입력 값이 null, 공백, 문자열을 검사하기 위해서 Spring Validation을 적용하였다.
하지만 질문 수정 버튼을 클릭할 경우, DB에 저장된 제목, 내용 정보를 가져오지 못하는 문제가 발생하였다.
오류를 확인해보니 <th:field>
값이 questionForm
값이 들어가있었던 것이다.
처음 수정 페이지에 접속할 때는 questionForm
객체는 null
값이기 때문이다.
그래서 해결하기 위해서 고민을 하다가 유효성 검사 시 bindingResult Error가 발생했을 때 question모델을 view에 전달하는 코드를 지우고 신나게 다시 실행했다 😁
그런데 question 모델이 view단에서 사용되고 있어 타입스크립트 오류가 발생하였다... 그리고 form의 action 속성에서는 question.id 값이 치환되서 전달되어야하기 때문에 반드시 필요했다...
생각을 하던 중 bindingError발생
했을 때는 question객체를 전달하는 것이 아니라 반드시 필요한 question의 id값만 전달해야겠다고 생각했다. 그리고 view 단에서는 question 객체가 true라면 ${question.id}
값을 사용하고 false라면 ${question_id}
값을 사용하도록 코드를 변경하였다.
<QuestionController.java>
<question_modify.html.java>