2013년 8월 8일 목요일

[오라클자바커뮤니티]Struts Validator 프레임워크 소개

Struts Validator 프레임워크 소개 


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  


스트럿츠의 Validator 프레임워크는 특별한 검증 로직을 개발자가 프로그래밍 하지 않고 애플리케이션의 Validation Rule을 이용하여 설정 할 수 있게 해 줍니다.(사용자가 필수입력 항목에 값을 넣었는지, 값이 지정된 범위에 맞게 되어 있는지, 이메일 주소 형식이 올바른지, 우편번호 형식이 맞는지…)  마치 닷넷 프레임워크의 Validation Control과 같은 기능을 수행 합니다.  (값을 꼭 넣으세요, 나이는 0 ~99 사이 입니다, 전화번호 형식이 잘못 되었군요, E-Mail 주소 형식이 잘못 되었군요와 같은 오류를 출력 할 수 있겠죠^^)

ActionForm에서 개개 프로퍼티에 대해 분리된 검증 로직을 구현하기 위해서는 에러 발견시 수동으로 ActionErrors를 만들고 ActionErros 컬렉션에 추가하는 별도의 작업을 개발자가 해 주어야 합니다.

이러한 방식의 문제점은 애플리케이션 전체에 걸쳐 많은 검증 로직을 포함하는 각각의 ActionForm 내부에 코딩을 해야 한다는 것 입니다. 값이 꼭 입력되어야 하는 “필수입력” 이라는 것만 생각 해 보아도 이것을 개개 프로퍼티(속성) 마다 , 그리고 모든 ActionForm에 대해 기술 한다는 것은 상당한 낭비라고 생각합니다. 물론 이러한 형태는 유지 보수도 어렵게 하는 단점도 있습니다.

Validator Framework는 현재 Jakarta Comons 프로젝트의 한 부분으로 스트럿츠 메인 배포판에 포함되어 있습니다. 물론 Commons 다운로드 페이지에서도 다운 받을 수 있습니다.
(http://jakarta.apache.org/commons)

Validator Framework에는 고유한 기능들을 위한 몇 개의 패키지가 필요한데 그 중 Jakarta ORO 패지지가 가장 중요 합니다. 정규 표현식, 치환, 텍스트 분리 등의 기능을 포함하고 있습니다. 스트럿츠에서 필요로 하는 패키지는 스트럿츠의 배포판에 포함되어 있는데 commons-validator.jar와 commons-oro.jar 파일을 /WEB-INF/lib 폴더에 추가 해야 합니다. 

Validator 프레임워크는 프로그래밍이 아닌 선언을 통해 사용자의 입력 값을 검증 하는 것으로 이것은 결국 소스 외부의 어떤 검증 규칙이 있다는 것을 의미 합니다. 즉 validation-rule.xml과 validation.xml 이라는 두 개의 설정 파일을 필요로 합니다.

---------------------------------
Validator Framework에 관해
---------------------------------

- 일종의 프레임웍 컴포넌트 입니다.
- XML 파일을 통해 설정 하며, 이 파일을 통해 폼의 필드에 대한 Validation 조건을 기술 합니다.
- 날짜나 정수형과 같은 기본 데이터 타입을 위한 Validator가 제공 됩니다.
- 우편번호나 전화번호 같은 패턴 기반 검증도 가능 합니다.
- 멀티 페이지와 지역화된 검증이 지원 됩니다.
- 리소스의 최적 사용 :: JavaScript 검증 기능을 제공 하거나 서버 측의 검증을 보장 가능
- 유지보수를 한곳에서 :: 클라이언트와 서버측 검증 모두를 동일한 Configuration으로부터 생성 가능
- 확장성 :: 사용자 정의 검증은 정규 표현식이나 자바 코드를 통해 가능
- 스트럿츠와의 통합 :: 기본적으로 검증은 스트럿츠의 메시지 번들을 공유
 

--------------------------------------
Validator를 구성하는 Component
--------------------------------------

- Validator
       
기본적인 공통의 타입을 다루며 required mask, minLength, maxLength, range, native types, date, email, credit card등을 포함 합니다.

- Resource Bundle
       
        지역화된 메시지와 라벨을 제공

- XML Configuration (File)

        검증 룰에 대한 정의
       
- JSP Tag

        주어진 폼 이름과 액션 경로를 통한 JavaScript 검증을 발생 시킵니다.       

- ValidatorForm
       
자동적으로 폼빈 이름에 기반한 프로퍼티들을 검증 합니다.
(실행 시점에 ActionMapping 파라미터를 통해 validate() 메소드로 보내어진)

- ValidatorActionForm

        자동적으로 액션 경로에 기반한 프로퍼티들을 검증 합니다.
(실행 시점에 ActionMapping 파라미터를 통해 validate() 메소드로 보내어진)

댓글 없음:

댓글 쓰기