인프런 커뮤니티 질문&답변

ywonp94님의 프로필 이미지
ywonp94

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

MVC2 타임 리프 입력 폼 처리에서 질문이 있습니다!

해결된 질문

작성

·

173

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.
 
안녕하세요 강사님 타임리프 부분이 가물가물해서 복습하고 있는 수강생입니다. 다름이 아니라 '타임리프 - 스프링 통합과 폼' 챕터 '입력 폼 처리' 강의에 질문이 있어서 글을 남깁니다. 지금 저는 JPA를 사용하면서 MVC 2 강의를 복습하고 있고, 기본 생성자의 접근 제한자를 모두 protected로 두고 사용하고 있습니다. 강의 내용 중, addForm을 Get으로 불러올 때, 빈 객체를 넘기셔서 일단 강의대로 적용하기 위해 public으로 접근 레벨을 변경하였으나, 여기서 문제가 발생하였습니다.
질문이 몇개 있어서 번호를 붙여서 질문하겠습니다!!
1. 기본 생성자를 사용하여 진행 시, save 및 update가 정상 작동하지 않습니다 (id를 제외한 모든 값이 null로 들어갑니다) 이 경우, 제가 생각하기에 flush가 동작하지 않아 그런 것 같은데, 정확한 버그 발생 이유와 해결 방안이 너무 궁금합니다!!ㅠㅠ
2. 결국 엔티티에서 빈 객체 생성자를 public으로 두고 싶지 않아, ItemDTO를 따로 만들어서 빈 객체를 생성하여 넘겨줬는데, 이렇게 해도 기능 자체는 정상 작동했습니다. 혹시 이 경우, 문제가 되는 점이 있을까요? (DTO => 엔티티 변환 과정 하나도 없이 그냥 ItemDTO만 전달했습니다)
바쁘실텐데 질문 읽어주셔서 감사합니다!! 또 항상 좋은 강의 제공해주셔서 강사님과 인프런 모든 분들에게 너무 감사드립니다!
 

답변 2

1

안녕하세요. ywonp94님, 공식 서포터즈 OMG입니다.

1. save 및 update 했을 시, 화면에서 서버로 데이터 전송은 정상적으로 실행된 것일까요?

@PostMapping("/add") 와 같은 저장 컨트롤러가 있을텐데, 화면에서 정상적으로 데이터가 넘어왔는지 확인이 필요합니다.

추가로, 엔티티에 Getter와, Setter유무도 확인이 필요합니다. 프로퍼티 바인딩이 되지 않아서 발생한 문제 일 수도 있을것 같아요.

 

2. 엔티티 대신 DTO는 정상동작한다고 하셨습니다. DTO로 하셔도 문제 없습니다.

감사합니다.

0

ywonp94님의 프로필 이미지
ywonp94
질문자

감사합니다!!

ywonp94님의 프로필 이미지
ywonp94

작성한 질문수

질문하기