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() 메소드로 보내어진)
댓글 없음:
댓글 쓰기