- 다량의 parameter을 넘겨 받을 때 Map<>도 가능하긴 하나 개발한 사람 외에는 유지보수가 어렵다.
=> 그래서 '커맨더'를 사용한 방식을 많이 사용함.
- 스프링에서는 '커맨드 객체(Command Object)'를 통해, 여러 request parameter들을 한번에 받아올 수 있다.
Q) 커맨드 객체란?
A) form 으로부터 넘어오는 parameter들을 담는 빈(bean) 객체
+) request parameter를 받아오는 방식 중에선 실제로 현업에서 가장 많이 사용하는 방법
// 커맨드 객체 사용
// 잔코딩이 매우 많이 줄어든다.
public void writeOkBoard(WriteDTO dto) {
System.out.println(dto);
}
=> handler 메소드에서 매개변수로 명시하면 스프링 내부에서 빈(bean) 객체가 생성되고 reqeust parameter들을 담음. 스프링 내부에서 WriteDTO 타입의 빈(bean) 객체가 생성되어, request parameter에 대해 적절한 setter가 호출되어 세팅됨. 그리고 Model에 addAttribute() 되어서 더해진다.
용어
- JSP MVC2
- Command 객체 : 컨트롤러에서 수행하는 것
- Spring
- Command 객체 : parameter를 받기 위한 bean 객체
@ModelAttribute
기본적으로 커맨드 객체는 객체의 타입명(ex. WriteDTO)가 model의 attribute가 됨. 커맨드 객체의 model에서의 attribute를 바꿔주기 위해 @ModelAttribute를 사용
//@ModelAttribute : 커맨드 객체의 model attribute 이름을 변경할 수 있다.
public void writeOkBoard(@ModelAttribute("DTO") WriteDTO dto) {
System.out.println(dto);
}
'웹개발 > Spring' 카테고리의 다른 글
Spring Validation (0) | 2021.11.30 |
---|---|
Maven 이란? (0) | 2021.11.29 |
@RequestParam (0) | 2021.11.29 |
Request Parameter (0) | 2021.11.29 |
redirect, RedirectAttributes (0) | 2021.11.29 |