본문 바로가기
✍ 따뜻한 개발 공부

[Spring] 스프링 프로젝트 진행중, 갑자기 헷갈리는 커맨드 객체.. 정확하게 정의가 어떻게 되지?

by 따따시 2022. 8. 22.

😎 커맨드 객체(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);
    
    }
}

댓글