https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/lecture/71236?tab=curriculum
데이터를 쿼리 파라미터를 통해 가져올 때 기본 방법은
HttpServletRequest를 파라미터로 받아와 request.getParameter("itemName" itemName) 형식으로 받아오는 것이 있다.
그런데 이렇게 일일이 request.getParameter를 써가면서 하기 번거로운 부분이 있다.
스프링은 이를 해결하기 위해 @RequestParam 어노테이션을 제공한다.
@RequestParam은 파라미터에서 값을 뽑아 변수에 값을 자동으로 넣어준다.
그런데 파라미터 값을 받아 객체 item을 생성해 값을 넣어주는데
이 과정을 스프링이 자동으로 해주면 어떨까?
스프링에선 객체를 위해 @ModelAttribute 어노테이션을 제공한다.
@ModelAttribute는 크게 두가지 기능을 사용하는데
- 파라미터로 들어오는 값과 @ModelAttribute에 정의한 객체를 비교해 매치되는 값을 넣어준다.
- @ModelAttribute("item") 괄호 안에 정의한 이름을 키 값으로 model.attribute에 넣어준다.
("item")에 정의하는 이름은 생략도 가능한데 생략을 한다면 객체 이름에서 첫글자를 소문자로 바꿔 키 값으로 사용한다.
스프링을 만든 사람들은 @ModelAttribute 어노테이션을 표시하는 것조차 번거롭다고 생각했는지 이것도 생략이 가능하다.
파라미터로 객체를 넣으면 스프링은 @ModelAttribute를 이용
* @RequestParam, @ModelAttribute 둘 다 생략이 가능하고 파라미터로 객체로 들어오면 스프링은 @ModelAttribute을 사용하고 나머지는 @RequestParam를 이용한다.
'Java > Spring' 카테고리의 다른 글
로그 (0) | 2021.10.13 |
---|---|
MVC 패턴 (ModelView) (0) | 2021.10.02 |
서블릿 진행 구조 (0) | 2021.09.15 |
서버, 서블릿, 멀티쓰레드 개념 (0) | 2021.09.15 |
초기화 콜백, 소멸 콜백 (0) | 2021.09.13 |