강의 chap6-8
HTTP 요청 파라미터 - @ModelAttribute
1. @ModelAttribute
- 요청 파라미터를 받아서 필요한 객체를 만들고 그 객체에 값을 넣어주는 것을 자동화해준다.
2. 매핑
@Data
public class HelloData {
private String username;
private int age;
}
@ResponseBody
@RequestMapping("/model-attribute-v1")
public String modelAttributeV1(@ModelAttribute HelloData helloData) {
log.info("username={}, age={}", helloData.getUsername(), helloData.getAge());
return "ok";
}
- @ModelAttribute가 HelloData 객체를 생성한다.
- 요청 파라미터의 이름으로 HelloData객체의 프로퍼티(getter, setter)를 찾는다.
3. 프로퍼티
- 객체에 getUsername() , setUsername() 메서드가 있으면, 이 객체는 username 이라는 프로퍼티를 가지고 있다.
- username 프로퍼티의 값을 변경하면 setUsername() 이 호출되고, 조회하면 getUsername()이 호출된다.
4. 생략
- @ModelAttribute는 생략 가능하다.
- @RequestParam은 생략할 수 있으나 혼란이 발생할 수 있다.
- String , int , Integer 같은 단순 타입 = @RequestParam 생략 가능
- 나머지 = @ModelAttribute (argument resolver 로 지정해둔 타입 외) 생략 가능
출처
인프런 강의 - 김영한
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard