반응형
먼저 아래사이트에서 필요 라이브러리를 다운로드 받는다...

http://commons.apache.org/beanutils/
http://commons.apache.org/logging/

필요라이브러리는 아래와 같다.
/*현재 최신버전은 1.8.0 이다.*/
commons-beanutils. jar
commons-beanutils-bean-collections.jar
commons-beanutils-core.jar

/*현재 최신버전은 1.1.1 이다.*/
commons-logging.jar

테스트 Person 객체.. 코드

public class Person {
 private String firstName;
 private String lastName;
 private Address address;
 private String phoneNumber;
 private long personId;
 public Person() {
  address = new Address();
 }
 public String getFirstName() {
  return firstName;
 }
 public void setFirstName(String firstName) {
  this.firstName = firstName;
 }
 public String getLastName() {
  return lastName;
 }
 public void setLastName(String lastName) {
  this.lastName = lastName;
 }
 public Address getAddress() {
  return address;
 }
 public void setAddress(Address address) {
  this.address = address;
 }
 public String getPhoneNumber() {
  return phoneNumber;
 }
 public void setPhoneNumber(String phoneNumber) {
  this.phoneNumber = phoneNumber;
 }
 public long getPersonId() {
  return personId;
 }
 public void setPersonId(long personId) {
  this.personId = personId;
 }
 
 
 public String toString() {
  StringBuffer buffer = new StringBuffer();
  buffer.append("firstName-->").append(this.getFirstName()).append("\n");
  buffer.append("lastName-->").append(this.getLastName()).append("\n");
  buffer.append("phoneNumber-->").append(this.getPhoneNumber()).append("\n");
  buffer.append("personId-->").append(this.getPersonId()).append("\n");
  buffer.append("address-->").append(this.getAddress().toString()).append("\n");
  return buffer.toString();
 }
}


public class Address {
 private String address;
 private String detailAddress;
 private String zipCode;
 private String countryCode;
 public String getAddress() {
  return address;
 }
 public void setAddress(String address) {
  this.address = address;
 }
 public String getDetailAddress() {
  return detailAddress;
 }
 public void setDetailAddress(String detailAddress) {
  this.detailAddress = detailAddress;
 }
 public String getZipCode() {
  return zipCode;
 }
 public void setZipCode(String zipCode) {
  this.zipCode = zipCode;
 }
 public String getCountryCode() {
  return countryCode;
 }
 public void setCountryCode(String countryCode) {
  this.countryCode = countryCode;
 }
 public String toString() {
  StringBuffer buffer = new StringBuffer();
  buffer.append("  address-->").append(this.getAddress()).append("\n");
  buffer.append("  detailAddress-->").append(this.getDetailAddress()).append("\n");
  buffer.append("  zipCode-->").append(this.getZipCode()).append("\n");
  buffer.append("  countryCode-->").append(this.getCountryCode()).append("\n");
 
  return buffer.toString();
 }
}


import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
public class Test {
 public static void main(String[] args) throws Exception{
  Map map = new HashMap();
  map.put("firstName", new String("블라블라"));
  map.put("lastName", new String("블랍블라블라블라"));
  map.put("phoneNumber", new String("0000-0000-0000"));
  map.put("personId", new Long(10011001));
  map.put("address.address", new String("경기도 블라블라블라블라") );
  map.put("address.detailAddress",new String("불라불라??? ???동 ????호") );
  map.put("address.zipCode",new String("000-000") );
  map.put("address.countryCode",new String("국가코드 000"));
 
  Object oClass = Person.class.newInstance();
  BeanUtils.populate(oClass, map);
  System.out.println(oClass.toString());
 }
}


위의 예제는 스트러츠같은곳에서 form 값을 세팅할때 사용하는것을 한번 작성해봤다.

스트러츠에도 위와같이 폼빈을 세팅해주지 않을까 생각한다.

리플렉션으로 만들어도 되겠지만 이왕 누군가가 만들어둔게 있으면 가져다 쓰는게 시간도 절약되고 주절주절 ㅋㅋㅋ

오늘은 여기까지. ^^
Posted by 1010