일기장
Published 2023. 5. 20. 01:47
@RequestsParam, @ModelAttribute 웹개발

1. @RequestParam

@RequestParam 어노테이션은 요청 파라미터의 값을 받아오는 데 사용됩니다. 요청 URL의 쿼리 문자열이나 POST 요청의 form 데이터에서 값을 추출할 수 있습니다. @RequestParam 어노테이션은 다양한 매개변수를 지원하며, 기본적으로 필수 여부, 기본값, 파라미터 이름 등을 설정할 수 있습니다.

 

@GetMapping("/user")
public String getUser(@RequestParam("id") int userId) { //생략가능, 보통 데이터가 기본형일 때 사용
    // userId를 활용한 로직
    return "user-profile";
}

 

 

2. @ModelAttribute

@ModelAttribute 어노테이션은 요청 데이터를 해당 모델 객체에 바인딩하는 데 사용됩니다. 주로 HTML form 데이터를 전달받을 때 사용하며, 자동으로 모델 객체를 생성하고 요청 데이터의 값을 해당 객체의 필드에 할당합니다. 또한, @ModelAttribute 어노테이션은 해당 객체를 뷰로 전달하여 화면에 표시할 수 있습니다.

 

@PostMapping("/user")
public String saveUser(@ModelAttribute("user") User user) { //생략가능, 보통 데이터가 참조형일 때 사용
    // user 객체를 활용한 저장 로직
    return "redirect:/users";
}

 

 

3. WebDataBinder

WebDataBinder은 @ModelAttribute를 이용하여 모델에 속성들을 저장하면서, 그에 대응되는 객체가 생성될 때 사용됩니다. 위의 예제를 예시로 들면 User클래스의 user가 생성될 때입니다. year, month, day인자가 문자열의 형태로 입력을 받았을 때, user에 저장하기 위해서는 각각에 맞는 타입으로 형변환을 해줘야 합니다. 또한, 그에 상응하는 데이터가 맞는지 판별도 해야합니다. 예를 들어 day인자는 1~31까지가 맞는지 확인해줘야 합니다. 이에 대한 결과를 BindingResult로 반환합니다. 즉, WebDataBinder은 타입변환과 데이터 검증의 역할을 하고 있습니다. 

'웹개발' 카테고리의 다른 글

쿠키(Cookie)  (0) 2023.05.24
GetMapping, PostMapping  (0) 2023.05.20
서블릿과 JSP  (1) 2023.05.19
MVC패턴 예제  (0) 2023.05.17
HTTP에서 바이너리 파일 다루기  (0) 2023.05.15
profile

일기장

@공군급양

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!