본문 바로가기
오늘의 기록

커맨드 객체

by 판순퐁 2022. 1. 5.

커맨드 객체란?

클라이언트가 전달해주는 파라미터 데이터를 주입 받기 위해 사용되는 객체

<form action="test" method="post">
	data1: <input type="text" name="data1"/>
    data2: <input type="text" name="data2"/>
    <button type="submit">확인</button>
</form>

 

위의 form으로 데이터를 전송(post)하면 @PostMapping으로 mapping되어 실행된다. 이때 Entity, DTO,VO 등의 객체로 주입을 받도록 되어있다.

 

@PostMapping("/test")
public String test(@ModelAttribute Member member) {
	member.getData1()l;
    member.getData2();
}

 

이 때 Member라는 클래스를 만들어야 하는데, 바로 이 클래스를 "커맨드 객체" 라고 한다.

 

 

public class Member{

	private String data1;
    private String data2;
    
    public String getData1(){
    	return data1;
    }
    
    public void setData1(String data1){
    	this.data1;
    }
    
    public String getData2(){
    	return data2;
    }
    
    public void setData2(String data2){
    	this.data2 = data2;
    }
}

 

이 Member 클래스는 data1과 data2를 주입받을 수 있다. 

form으로 전송된 데이터들이 이 "커맨드 객체"에 담겨 controller로 전송된다.

 

@ModelAttribute 어노테이션을 사용하여 주입받은 객체는 request에 담겨서 return 으로 전달하겠다를 의미한다.

그래서 따로 request를 해주지 않아도 전달이 된다. 

 

참고:https://cokes.tistory.com