
@ModelAttribute
- 스프링MVC는
@ModelAttribute 가 있으면 다음을 실행한다. HelloData 객체를 생성한다.
- 요청 파라미터의 이름으로
HelloData 객체의 프로퍼티를 찾는다. 그리고 해당 프로퍼티의 setter를 호출해서 파라미터의 값을 입력(바인딩) 한다.
- 예) 파라미터 이름이
username 이면 setUsername() 메서드를 찾아서 호출하면서 값을 입력한다.
- 타입이 맞지 않는 경우 오류 발생
@Data
public class HelloData {
private String username;
private Integer age;
}
@ResponseBody
@RequestMapping("/model-attribute-v1")
public String modelAttributeV1(@ModelAttribute HelloData helloData) {
log.info("username={}, age={}",helloData.getUsername(), helloData.getAge());
return "ok";
}
@ResponseBody
@RequestMapping("/model-attribute-v2")
public String modelAttributeV2(HelloData helloData) {
log.info("username={}, age={}",helloData.getUsername(), helloData.getAge());
return "ok";
}