[Spring] ModelAttribute

Manx·2022년 4월 29일
0

spring

목록 보기
13/24

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 By 김영한 강사님의 강의 내용입니다.


ModelAttribute가 어떤 기능들을 해주는지 알아보자.

1. @RequestParam

@RequestParam 어노테이션을 이용해 요청이 들어오는 파라미터들을 다음과 같이 처리할 수 있다.

@PostMapping("/add")
    public String saveItemV1(@RequestParam String itemName,
                       @RequestParam int price,
                       @RequestParam Integer quantity,
                       Model model) {

        Item item = new Item();
        item.setItemName(itemName);
        item.setPrice(price);
        item.setQuantity(quantity);

        itemRepository.save(item);

        model.addAttribute("item", item);

        return "basic/addForm";
    }

하나하나 다 @RequestParam으로 받아 전부 set해준 뒤 model.addAttribute를 통해서 등록하는 과정을 거쳐야 한다.

2. @ModelAttribute

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

	itemRepository.save(item);

	return "basic/addForm";
}

@ModelAttribute("item")으로 요청을 받으면 Item 변수들을 자동으로 받아 model에 "item"으로 등록해준다! 굉장히 편리하다.


그러나 더 편리하게 쓸 수 있다.

@PostMapping("/add")
public String saveItemV3(@ModelAttribute Item item) {
    
	itemRepository.save(item);

	return "basic/addForm";
}

다음과 같이 @ModelAttribute("item")의 ("item")도 생략할 수 있다.
생략하면 매개변수 클래스의 첫번째 문자를 소문자로 바꾼 이름이 model에 등록된다.
지금은 Item이니 item으로 model에 등록된다.


추가적으로 @ModelAttribute도 생략할 수 있다.

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

	itemRepository.save(item);

	return "basic/addForm";
}

0개의 댓글