HTTP 요청 파라미터 - @ModelAttribute

박찬우·2024년 1월 20일

스프링 MVC

목록 보기
31/85

@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";
}

// @ModelAttribute 생략
@ResponseBody
@RequestMapping("/model-attribute-v2")
public String modelAttributeV2(HelloData helloData) {
	log.info("username={}, age={}",helloData.getUsername(), helloData.getAge());

	return "ok";
}
profile
진짜 개발자가 되어보자

0개의 댓글