--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
보통 command 객체로 domain 객체를 가져다 쓰는데요. 이렇게 하면 객체를 재
활용 할 수 있어 편하긴 하지만 domain 객체가 command 객체에 적합하지 않을
때에도 계속 쓰는 게 좋냐는 문제가 있습니다.
예를 들어 지금 같은 경우 domain 객체에 없는 어떤 값을 기준으로 radio 버
튼의 selected 속성을 표시하고 싶은 건데요. 이건 명백해 (스프링 form
taglib의 설계를 따른다면) command 객체에 있어야 하는 값입니다.
만약 특정 폼 전용의 객체를 만들고 그 속성에다 폼에서 사용할 각종 정보를
담아두면 어떨까요? 예전 struts에서 쓰던 방식처럼 web 단에서만 쓰는 모델
객체를 따로 만드는 거죠... 이렇게 하는 게 원론적인 MVC 모델에 부합한다고
봅니다.
예를 들어 다음의 domain 객체를 command 객체로 쓰는 상황인데
public class Address {
private String address1;
private String address2;
/* getter/setter 생략 */
}
db에서 읽어온 zipcode로 select 항목을 표시해서 받아야 한다고 하면 이런
식으로 별도를 객체를 만들어 command 객체로 사용해보면 어떨까요?
public class AddressCommand {
private Address address;
private String zipcode;
public Address getAddress() { return address; }
public String getZipcode() { return zipcode; }
/* setter 생략 */
}
이렇게 해도 되고요.
public class AddressCommand {
private Address address;
private String zipcode;
public String getAddress1() { return address.getAddress1(); }
public String getAddress2() { return address.getAddress2(); }
public String getZipcode() { return zipcode; }
/* setter 생략 */
}
단순한 샘플에서 domain 개체를 command 객체로 쓰는 경우가 많은데 좋은 실
천법이기는 하지만 거기에 제한될 필요는 없습니다.
command 객체는 특정 controller에서만 쓰는 경우가 많으니까 inner class로
만들어도 되겠죠.