인프런 커뮤니티 질문&답변
타임리프 문법에 대한 질문입니다.
작성
·
266
0
createItemForm할때와 updateItemForm할때 동일하게 form객체를 넘겨서
html form 태그내에서 th:object=${form}
으로 받아와 사용하는것으로 이해했습니다.
그런데 방식은 동일한데 왜 수정을 하는 페이지에서는 이미 값이 들어와있고 등록을할때는 입력한 값이 등록이 되는지, 그부분에 대한 확실한 이유를 모르겠습니다.
처음 넘겨온 form객체가 비어있는상태에서 submit을 누르면 입력한 값이 form객체안에 세팅되는식이고 반대로 이미 값을 가지고있는 form객체를 가져올경우 input태그속에 값이 들어간채로 로딩이 되는건가요?
그부분에 대해서 따로 if 라거나 그런걸 사용할필요없이 자동으로 타임리프에서 값이 있다 없다를 인식하고 처리를 해주는건가요?
혹은 두가지 경우 모두 form의 값을 가져오는건데 create때는 각 값이 null이기 때문에 빈칸으로 불러와지는거고 두번째는 무언가 값이 있기때문에 인풋칸에 들어있는거다, 라고 이해해도 되는걸까요?
답변 1
1
안녕하세요. Jason Lee님, 공식 서포터즈 OMG입니다.
등록에서는 new연산자로 다음과 같이 모델에 BookForm에 대한 객체 생성을 진행합니다.
생성만 한 것이기 때문에 별도의 속성값이 없는 말그대로 껍데기 뿐인 데이터일겁니다.
이러한 껍데기가 있어야 th:object가 문제없이 동작합니다.
수정에서는 값이 채워진 채로 수정화면에 전달됩니다.

"처음 넘겨온 form객체가 비어있는상태에서 submit을 누르면 입력한 값이 form객체안에 세팅되는식이고 반대로 이미 값을 가지고있는 form객체를 가져올경우 input태그속에 값이 들어간채로 로딩이 되는건가요?"
=> 제 답변을 바탕으로 이 내용으로 이해하셔도 됩니다.
감사합니다.





