본문 바로가기
IT/spring

스프링 @ModelAttribute 어노테이션

by 뉴코딩맨 2023. 6. 29.
@ModelAttribute 어노테이션은 스프링 프레임워크에서 사용되는 어노테이션 중 하나로, 웹 요청의 데이터를 도메인 객체에 바인딩해주는 역할을 합니다. @ModelAttribute 어노테이션에 대해 자세히 알아보고, 예시를 통해 설명하도록 하겠습니다.

 

 

@ModelAttribute 어노테이션의 역할

@ModelAttribute 어노테이션은 웹 요청의 데이터를 자동으로 도메인 객체에 바인딩해주는 역할을 합니다. 이를 통해 사용자가 입력한 데이터를 컨트롤러에서 처리하기 쉽게 변환해줍니다.
 
 

@ModelAttribute 어노테이션 예시

아래는 @ModelAttribute 어노테이션을 사용한 예시입니다.
 
@Controller
@RequestMapping("/users")
public class UserController {

    @GetMapping("/register")
    public String showRegisterForm(@ModelAttribute("user") User user) {
        return "register-form";
    }

    @PostMapping("/register")
    public String registerUser(@ModelAttribute("user") User user) {
        // 사용자 등록 로직
        return "redirect:/users/login";
    }
}
 
위의 예시에서 showRegisterForm() 메소드와 registerUser() 메소드에서 @ModelAttribute("user") 어노테이션을 사용하였습니다. 이는 해당 메소드의 파라미터인 User 객체를 사용하여 웹 요청의 데이터를 자동으로 바인딩해줍니다. @ModelAttribute("user") 어노테이션은 바인딩된 객체의 이름을 지정할 수 있는데, 이는 뷰에서 해당 이름으로 객체를 참조할 수 있도록 합니다.
 
위의 예시에서는 /users/register 경로로 GET 요청이 들어오면 showRegisterForm() 메소드가 실행되어 User 객체를 생성하고, 해당 객체를 "user"라는 이름으로 뷰에 전달합니다. 사용자가 입력한 데이터는 자동으로 User 객체에 바인딩되어 전달됩니다. POST 요청이 들어오면 registerUser() 메소드가 실행되어 사용자를 등록하고, 로그인 페이지로 리다이렉트합니다.
 
 

마무리

스프링의 @ModelAttribute 어노테이션에 대해 알아보았습니다. @ModelAttribute 어노테이션을 사용하여 웹 요청의 데이터를 자동으로 도메인 객체에 바인딩할 수 있으며, 이를 통해 컨트롤러에서 데이터를 쉽게 처리할 수 있습니다.
 

댓글