✍ 따뜻한 개발 공부
[Spring] 스프링 프로젝트 진행중, 갑자기 헷갈리는 커맨드 객체.. 정확하게 정의가 어떻게 되지?
따따시
2022. 8. 22. 15:45
😎 커맨드 객체(Command Object) 란?
커맨드 객체는 HttpServletRequest 를 통해 들어온 요청 값을 setter 메서드를 통해 객체에 정의되어있는 속성에 바인딩이 되는 객체를 의미한다.
커맨드 객체는 dto 객체를 가리키고, HttpServletRequest 로 받아오는 요청값의 키 값과 동일한 이름인 속성들과 setter 메서드를 가지고 있어야 한다.
일일히 요청값을 맵핑해주지 않고, 훨씬 간편하게 코드를 짤 수 있게 된거지!
( HttpServletRequest 나 RequestParam 을 사용하는 것보다 훨씬 간단)
예로, 내가 지금 하고있는 프로젝트를 보면
커맨드 패키지 안에 아래처럼 커맨드 객체를 만들어주었다.
public class BContentCommand implements BCommand {
@Override
public void execute(Model model) {
Map <String,Object> map = model.asMap();
HttpServletRequest request =(HttpServletRequest) map.get("request");
String bId = reqeust.getParameter("bId");
BDao dao = new BDao();
BDto dto = dao.contentView(bId);
model.addAttribute("content_view".dto);
}
}