생각
@ModelAttribute 어노테이션은 객체를 바인딩한다고 알고 있다. 객체라면 내가 만든 DTO 라고 해야하나..
여하튼 좀 더 자세히 알고 싶어서 정리해두면 좋을 거 같아서 글을 작성한다.
@ModelAttribute
- HTTP 요청의 파라미터를 객체에 바인딩할 때 사용한다.
- 주로 폼 데이터를 처리할 때 유용하다.
<!-- html 예시 -->
<form action="/register" method="post">
<input type="text" name="name" placeholder="이름 입력" required />
<button type="submit">등록</button>
</form>
// Controller 예시
@PostMapping("/register")
public String register(@ModelAttribute User user) {
// user 객체에 폼 데이터가 바인딩됩니다.
return "Registration successful for " + user.getName();
}
- 폼 데이터에서 입력한 값이 User 데이터 타입의 user 객체에 폼 데이터가 바인딩 된다.
특징
- 자동으로 객체의 프로퍼티에 요청 파라미터를 매핑한다.
- 특정 모델 속성을 지정할 수도 있다. (@ModelAttribute("user") User user와 같이)
- 객체의 유효성 검사를 수행할 수 있도록 설정할 수 있다.
'Java > SpringBoot' 카테고리의 다른 글
@Configuration, @Bean, @EnableWebSecurity, SecurityFilterChain, HttpSecurity (0) | 2024.10.28 |
---|---|
@Param (0) | 2024.10.28 |
@RequestParm (0) | 2024.10.28 |
[MyBatis] <resultMap>, <id>, <result>, <collection> (1) | 2024.10.28 |
[MyBatis] useGeneratedKeys, keyProperty (1) | 2024.10.28 |