[SPRING] 파라미터에 Model, @ModelAttribute, @RequestParam 정리

윤재열·2022년 2월 21일
2

Spring

목록 보기
27/72
post-custom-banner

@ModelAttribute의 다양한 사용법

파라미터에 Model과 @ModelAttribute의 차이점

    1. @ModelAttribute : 프론트에서 백단으로 데이터가 올때 사용합니다.(주로 수정,등록에 쓰입니다.)
    1. 파라미터에 Model 객체 생성 : 백단에서 프론트단으로 데이터를 옮기고 싶을 때는 model.addAttribute를 사용해줍니다.

@ModelAttribute 와 @RequestParam의 차이점

  • @RequestParam은 단일 변수가 왔을때 사용합니다.
  • @ModelAtribute는 객체가 왓을때 사용합니다.(객체안에 또다른 객체일 때)

1. 파라미터에 @ModelAttribute 넣어주는 방법(변수명 정의)

@PostMapping("/add")
public String addItemV1(@ModelAttribute("item") Item item){

itemRepository.save(item);

return "/basic/item";
  • 이런식으로 파라미터에 @ModelAttribute 어노테이션 선언후 객체를 선언해주면 자동으로 모델(Model)@ModelAttribute 로 지정한 객체를 자동으로 넣어줍니다.

  • 모델에 데이터를 담을 때는 이름이 필요하다. 이름은 @ModelAttribute 에 지정한 name(value) 속성을 사용합니다.

2.@ModelAttribute 이름을 생략이 가능합니다.

@PostMapping("/add")
public String addItemV2(@ModelAttribute Item item){

itemRepository.save(item);

return "/basic/item";
  • @ModelAttribute 의 이름을 생략하면 모델에 저장될 때 클래스명을 사용한다. 이때 클래스의 첫글자만 소문자로 변경해서 등록합니다.

3.@ModelAttrbute어노테이션은 생략이 가능합니다.

@PostMapping("/add")
public String addItemV3(Item item){

itemRepository.save(item);

return "/baisc/item";
  • @ModelAttribute 자체도 생략가능합니다.
  • 대상 객체는 모델에 자동 등록됩니다. 나머지 사항은 기존과 동일합니다.
profile
블로그 이전합니다! https://jyyoun1022.tistory.com/
post-custom-banner

0개의 댓글