HTTP 요청 파라미터 - @ModelAttribute

SHByun·2023년 1월 25일
0

강의 chap6-8


HTTP 요청 파라미터 - @ModelAttribute

1. @ModelAttribute

  • 요청 파라미터를 받아서 필요한 객체를 만들고 그 객체에 값을 넣어주는 것을 자동화해준다.

2. 매핑

  • HelloData
@Data
public class HelloData {

    private String username;
    private int age;
}

  • Controller
@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

profile
안녕하세요

0개의 댓글