똑같은 삽질은 2번 하지 말자

Command 객체 본문

Spring/忘れやすい概念

Command 객체

곽빵 2019. 6. 16. 17:43

Controller 객체에서 사용자의 요청(*.do)을 받을때 사용자가 입력하는 정보(이름,나이,성별등등)가 많거나 변경되는 상황

 

정보가 많으면 그만큼의 자바 코드가 필요해지며, 입력 정보가 변경될 때마다 Controller 클래스는 수정되어야 한다.

 

but, Command 객체를 이용하면 이런 문제를 모두 해결할 수 있다. 

 

Command 객체는 Controller 메소드 매개변수로 받은 VO 객체라고 보면 된다.

 

위 코드와 같이 insertBoard 메소드에 parameter로  BoardVO vo를 선언하면

 

Spring 컨테이너가 insertBoard() 메소드를 실행할 때(Service 요청) Command 객체를 생성하여 넘겨준다.

 

결과적으로, 사용자 입력 정보 추출 VO 객체 생성, 값 설정을 모두 Spring 컨테이너가 자동으로 처리해준다.

 

과정

1. 매개변수에 해당하는 BoardVO 객체 생성

2.사용자가 입력한 parameter 값들을 추출하여 BoardVO 객체에 저장 이때, BoardVO 클래스의 Setter 메소드가 호출

3.사용자의 입력값들이 설정된 BoardVO 객체가 인자로 전달된다.

 

* 전달할 때 Form 태그 안의 parameter 이름과 Command 객체의 Setter 메소드 이름이 반드시 일치해야함!

  ex) <input type="text" name="title">  ->  public void setTitle()

 

ps. 배우면 배울수록 어마어마하게 편해지는거 같다 Spring

Comments