강의

멘토링

로드맵

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

박정훈님의 프로필 이미지
박정훈

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

상품 수정

@ModelAttribute관련 질문입니다.

작성

·

414

0

강사님 아래 다른 분들이 올려주신 질문이랑 강사님의 답변을 봤는데도 이해가 가지 않아서 질문을 올립니다.. @ModelAttribute를 붙이면 model.addAttribute의 효과를 얻을 수 있는 것이라는 말씀은 이해가 가는데 보통 @PostMapping에서는 model 객체를 사용하지 않았던거 같은데 updateItem 함수에서는 왜 사용이 되는지랑 아래 캡쳐화면 보시면

@PostMapping("/items/new")
public String create(BookForm form) {
Book book = new Book();
book.setName(form.getName());
book.setPrice(form.getPrice());
book.setStockQuantity(form.getStockQuantity());
book.setAuthor(form.getAuthor());
book.setIsbn(form.getIsbn());

itemService.saveItem(book);

return "redirect:/items";
}

create 함수도 @PostMapping이면서 redirect:/items로 리턴이 되고 BookForm 객체변수명이 form 인데 왜 여기서는 @ModelAttribute가 안붙는지도 궁금합니다. 그리고 @ModelAttribute가 생략을 해도 되는건지도 궁금합니다.

요약해서 질문 드리면

1. @PostMapping에서는 보통 model 객체를 사용하지 않았던거 같은데 updateItem 함수에서는 왜 사용이 되나요?

2. create함수에서는 왜 @ModelAttribute가 안붙는건가요?

3. @ModelAttribute를 생략을 해도 되는건가요?

퀴즈

61%나 틀려요. 한번 도전해보세요!

회원 가입 시 화면 입력 데이터를 엔티티 객체 대신 별도의 Form 객체로 받는 주된 이유는 무엇일까요?

데이터베이스 성능을 최적화하기 위해서

화면 종속적인 데이터나 유효성 검증 로직을 분리하기 위해서

JPA 영속성 컨텍스트와 직접적인 관계를 맺기 위해서

코드의 자동 생성 기능을 활용하기 위해서

답변 2

0

박정훈님의 프로필 이미지
박정훈
질문자

넵 감사합니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 박정훈님

먼저 @ModelAttribute를 생략해도 됩니다^^ (생략하면 자동으로 @ModelAttribute가 들어간다고 생각하시면 됩니다.)

여기에 대한 자세한 내용은 MVC1 강의를 참고해주세요.

감사합니다.

박정훈님의 프로필 이미지
박정훈

작성한 질문수

질문하기