아래의 내용은 민선생님 블로그에서 가져온 내용입니다.

===============================================================================================

스트럿츠의 ActionForm 객체는 클라이언트의 요청시 전달되는 파라미터를 할당 받도록 이미 구현되어져 있다.

하지만 이 폼빈을 모델에서 사용해왔던 데이터 빈즈로 대체 하기에는 다소 무리가 따른다.

왜냐하면 스트럿츠는 폼빈은 어디까지나 컨트롤러 차원에서 클라이언트의 전송 파라미터 및 유효성 체크에 중심을 둔 반면,

모델 영역의 데이터 빈즈는 데이터베이스 테이블에 대한 CRUD 에 중심을 두었기 때문이다.

따라서, 빈즈를 컨트롤러와 모델 양측면에 다 사용하려고 할때 유연성이 떨어짐을 느낄 수가 있을 것이다. (직접시도해 보기 바란다^^)

그렇다면 이런 빈즈의 충돌문제는 어떻게 해결해야 할까?

폼빈에 담겨진 파라미터 값을 그대로 유지하면서 모델의 데이터빈즈에도 적용하는 방법이 있다.

바로 빈즈의 복사기법을 이용하면 되는데 org.apache.commons.beanutils 패지지의 PropertyUtils 클래스를 이용하면 된다.

PropertyUtils 객체의 copyProperties() 메서드는 두개의 인수를 갖으며 인수의 내용은 아래와 같다.

PropertyUtils.copyProperties(복사빈즈 ,원본 빈즈);

PropertyUtils 객체의 더욱 자세한 설명은 API 문서로 확인하도록 한다.

commons 프로젝트에 일부이므로 commons.org.apache 로 접속하면 API 문서를 확인할 수 있다.

 

Posted by Taoist
,