양식 개발 ( 클래식 UI ) 
 양식 의 기본 구조 는 다음 과 같 습니다 . 
 이러 한 모든 구성 요소 는 일련 의 기본 양식 구성 요소 를 사용 하 여 구현 되 며 표준 AEM 설치 에서 사용 할 수 있 습니다 . 
 양식 에 사용 할 새 구성 요소 를 개발 할 수 있 을 뿐 만 아니 라 다음 을 수행 할 수 있 습니다 . 
 값 을 사용 하 여 양식 미리 로드 
 여러 값 이 있 는 특정 필드 미리 로드 
 새로운 액션 개발 
 새로운 제약 조건 개발 
 특정 양식 필드 표시 또는 숨기 기 
 스크립트 를 사용 하 여 필요 한 경우 기능 을 확장 할 수 있 습니다 . 
 이 문서 에서 는 클래식 UI 에서 기본 구성 요소 를 사용 하 여 양식 을 개발 하 는 데 중점 을 둡니다 . 터치 지원 UI 에서 양식 개발 을 위해 새로운 코어 구성 요소 및 조건 숨기 기 를 활용 하 는 것 이 좋 습니다 . 
 양식 값 미리 로드 
 양식 시작 구성 요소 는 로드 경로 에 ​ 대한 필드 를 제공 하 며 , 저 장소 에서 노드 를 가리키 는 선택 적 경로 입니다 . 
 로드 경로 는 사전 정의 된 값 을 양식 의 여러 필드 에 로드 하 는 데 사용 되 는 노드 속성 의 경로 입니다 . 
 양식 작업 은 초기 값 을 로드 할 리소스 를 설정 할 수 도 있 습니다 . 이 작업 은 FormsHelper # setFormLoadResource 내부 에서 init . jsp 수행 됩니다 . 
 이 값 이 설정 되 지 않 은 경우 에 만 작성자 가 양식 시작 구성 요소 에 설정 된 경로 에서 양식 을 채울 수 있 습니다 . 
 또한 다양 한 양식 필드 에 는 항목 로드 ​ 경로 가 있 으며 , 다시 선택 적 인 경로 는 저 장소 의 노드 를 가리킵니다 . 
 항목 로드 경로 는 사전 정의 된 값 을 폼 의 특정 필드 에 로드 하 는 데 사용 되 는 노드 속성 경로 입니다 . 예 를 들 어 , 드롭 다운 목록 , 확인 란 그룹 또는 라디오 그룹 라디오 그룹 . 
 예 - 여러 값 이 있 는 드롭 다운 목록 미리 로드 
 항목 로드 경로 를 사용 하 여 저 장소 의 폴더 에서 목록 에 액세스 하 여 필드 에 미리 로드 할 수 있 습니다 . 
 예 를 들 어 새 sling 폴더 ( sling : Folder ) 를 만듭니다 . / etc / designs / < myDesign >/ formlistvalues 
 드롭 다운 항목 목록 을 포함 할 새 속성 ( 예 myList : 다중 값 문자열 String [ ] ) 을 추가 합니다 . 셸 스크립트 의 JSP 스크립트 또는 cURL 과 같 은 스크립트 를 사용 하 여 컨텐츠 를 가져올 수 도 있 습니다 . 
 의 값 이 다음 과 같이 형식 이 지정 된 String [ ] 경우 : 
 등 이 됩니다 . 
 그러 면 AEM 에서 다음 과 같이 목록 을 생성 합니다 . 
 예 를 들 어 이 기능 을 다중 언어 설정 에서 사용 할 수 있 습니다 . 
 양식 작업 개발 
 양식 에 는 작업 이 필요 합니다 . 작업 은 사용 자 데이터 와 함께 양식 을 제출 할 때 실행 되 는 작업 을 정의 합니다 . 
 표준 AEM 설치 에서 다양 한 작업 이 제공 되 는데 , 아래 에서 볼 수 있 습니다 . 
 양식 구성 요소 의 작업 유형 목록 에서 다음 을 수행 합니다 . 
 이 섹션 에서 는 이 목록 에 포함 할 양식 작업 을 개발 할 수 있 는 방법 에 대해 설명 합니다 . 
 다음 과 / apps 같이 고유 한 작업 을 추가 할 수 있 습니다 . 
 노드 유형 을 sling : Folder 만듭니다 . 구현 할 작업 을 반영 하 는 이름 을 지정 합니다 . 
 이 노드 에서 다음 속성 을 정의 한 다음 모두 저장 을 클릭 하 여 변경 사항 을 유지 합니다 . 
 sling : resourceType - 다음 으로 설정 foundation / components / form / action 
 componentGroup - 다음 으로 정의 . hidden 
 원할 경우 : 
 jcr : title - 원 하 는 제목 을 지정 하 면 드롭 다운 선택 목록 에 표시 됩니다 . 설정 하 지 않 으면 노드 이름 이 표시 됩니다 . 
 jcr : description - 원 하 는 설명 을 입력 합니다 . 
 폴더 에서 대화 상자 노드 를 만듭니다 . 
 동작 을 선택 한 후 작성자 가 양식 대화 상자 를 편집 할 수 있 도록 필드 를 추가 합니다 . 
 폴더 에서 다음 중 하나 를 만듭니다 . 
 게시물 스크립트 입니다 . 스크립트 이름 은 post . POST . < extension > 예 : post . POST . jsp 양식 을 처리 하 기 위해 양식 이 전송 될 때 호출 되 고 양식 에서 도착 하 는 데이터 를 처리 하 는 코드 가 포함 되 어 POST 있 습니다 . 
 양식 을 제출 할 때 호출 되 는 전달 스크립트 를 추가 합니다 . 스크립트 이름 은 forward . < extension >( 예 : forward . jsp 이 스크립트 는 경로 를 정의 할 수 있 습니다 . ) 그런 다음 현재 요청 이 지정 된 경로 로 전달 됩니다 . 필요 한 호출 은 FormsHelper # setForwardPath ( 변형 2 개 ) 입니다 . 일반 적 인 경우 는 일부 유효 성 검사 또는 논리 를 수행 하 여 대상 경로 를 찾 은 다음 해당 경로 로 이동 하 여 기본 Sling POST 서블릿 이 JCR 의 실제 저 장소 를 수행 하 도록 하 는 것 입니다 . 
 실제 처리 를 수행 하 는 다른 서블릿 이 있 을 수 도 있 습니다 . 예 를 들 어 양식 작업 과 이 " 접착제 " 코드 로 만 forward . jsp 작동 할 경우 . 이 방법 의 예 는 메일 동작 으로 , 세부 사항 을 메일 서블릿 이 / libs / foundation / components / form / actions / mail 있 는 < currentpath >. mail . html 위치 로 전달 합니다 . 
 작업 post . POST . jsp 자체 에 의해 완전히 수행 되 는 작 은 작업 에 유용 합니다 
 반면 에 forward . jsp 위임 만 필요 한 경우 유용 합니다 . 스크립트 의 실행 순서 는 다음 과 같 습니다 . 
 양식 을 렌더링 하 는 경우 ( GET ) : 
 양식 의 validationRT : clientvalidation . jsp 
 설정 된 경우 로드 리소스 를 통해 양식 이 로드 됩니다 . 
 addfields . jsp 렌더링 중 < form ></ form > 
 양식 처리 시 POST : 
 양식 의 validationRT : servervalidation . jsp 
 전달 경로 가 설정 된 경우 ( FormsHelper . setForwardPath ) 요청 을 전달 한 다음 cleanup . jsp 
 전방 경로 가 설정 되 지 않 은 경우 post . POST . jsp ( 여기 에서 종료 , cleanup . jsp 호출 없 음 ) 
 폴더 에 다시 추가 합니다 . 
 필드 추가 를 위한 스크립트 입니다 . 스크립트 이름 은 입니다 . addfields . < extension > 예 를 들 어 addfields . jsp 양식 시작 HTML 이 작성 된 즉시 addfields 스크립트 가 호출 됩니다 . 이 를 통해 동작 에서 양식 내 에 사용 자 정의 입력 필드 또는 기타 HTML 을 추가 할 수 있 습니다 . 
 초기 화 스크립트 . 스크립트 이름 은 init . < extension > 예 : init . jsp 이 스크립트 는 양식 이 렌더링 될 때 호출 됩니다 . 작업 세부 사항 을 초기 화 하 는 데 사용 할 수 있 습니다 . " 
 정리 스크립트 입니다 . 스크립트 이름 은 입니다 . cleanup . < extension > 예 를 들 어 cleanup . jsp 이 스크립트 를 사용 하 여 정리 를 수행 할 수 있 습니다 . 
 parsys 에서 양식 구성 요소 를 사용 합니다 . 이제 작업 유형 드롭 다운 에 새 작업 이 포함 됩니다 . 
 제품 에 포함 된 기본 작업 을 보 려면 : 
 고유 한 양식 제약 조건 개발 
 제한 조건 은 다음 두 가지 수준 으로 지정 할 수 있 습니다 . 
 개별 필드 의 경우 ( 다음 절차 참조 ) 
 개별 필드 에 대한 제한 
 다음 과 같이 개별 필드 ( 아래 / apps ) 에 대한 고유 한 제한 을 추가 할 수 있 습니다 . 
 노드 유형 을 sling : Folder 만듭니다 . 구현 할 제한 을 반영 하 는 이름 을 지정 합니다 . 
 sling : resourceType - 설정 foundation / components / form / constraint 
 constraintMessage - 양식 을 제출 할 때 제약 조건 에 따라 필드 가 유효 하 지 않 을 경우 표시 되 는 사용자 지정 된 메시지 
 jcr : title - 원 하 는 제목 을 지정 하 면 선택 목록 에 표시 됩니다 . 설정 하 지 않 으면 노드 이름 이 표시 됩니다 . 
 hint - 사용 자 를 위한 추가 정보 , 필드 사용 방법 
 이 폴더 내 에서 다음 스크립트 가 필요 할 수 있 습니다 . 
 클라이언트 유효 성 검사 스크립트 : 스크립트 이름 은 clientvalidation . < extension > 예 : 양식 clientvalidation . jsp 필드 가 렌더링 될 때 호출 됩니다 . 클라이언트 javascript 를 만들 어 클라이언트 의 필드 를 확인 하 는 데 사용 할 수 있 습니다 . 
 서버 유효 성 검사 스크립트 : 스크립트 이름 은 servervalidation . < extension > 예 : servervalidation . jsp 양식 을 제출 하 면 호출 됩니다 . 이 필드 를 제출 한 후 서버 의 필드 를 확인 하 는 데 사용 할 수 있 습니다 . 
 다음 은 샘플 제한 사항 입니다 . 
 양식 전역 제한 
 양식 전역 유효 성 검사 는 시작 양식 구성 요소 ( validationRT ) 에서 리소스 유형 을 구성 하 여 지정 합니다 . 예 : 
 그런 다음 다음 을 정의 할 수 있 습니다 . 
 필드 의 클라이언트 유효 성 검사 스크립트 다음 에 clientvalidation . jsp 삽입 됨 
 및 a servervalidation . jsp - 개별 필드 서버 유효 성 검사 후 에 호출 됩니다 . POST 
 양식 의 다른 필드 값 에 따라 양식 구성 요소 를 표시 하 거나 숨기 도록 양식 을 구성 할 수 있 습니다 . 
 양식 필드 의 표시 여부 를 변경 하 는 방법 은 해당 필드 가 특정 한 조건 에서 만 필요 한 경우 에 유용 합니다 . 예 를 들 어 사용 자 의견 양식 에서 고객 에게 이메일 로 제품 정보 를 받 아 볼지 를 물어본 후 , 고객 이 ' 예 ' 를 선택 하 면 이메일 주소 를 입력 하 는 텍스트 필드 를 표시 할 수 있 습니다 . 
 대화 상자 위쪽 의 필드 를 사용 하 여 다음 정보 를 지정 합니다 . 
 지정 하 는 조건 이 구성 요소 를 숨길 조건 인지 아니 면 표시 할 조건 인지 
 구성 요소 를 표시 하 거나 숨기 려면 조건 이 하나 라도 true 이 면 되 는지 아니 면 모든 조건 이 true 여야 하 는지 
 이러 한 필드 아래 에 하나 이상 의 조건 이 표시 됩니다 . 조건 에서 는 같 은 양식 에 있 는 다른 양식 구성 요소 의 값 을 특정 값 과 비교 합니다 . 필드 의 특정 값 이 조건 을 만족 하 면 해당 조건 이 true 로 평가 됩니다 . 조건 에 는 다음 정보 가 포함 됩니다 . 
 테스트 대상 양식 필드 의 제목 
 필드 값 과 비교 할 값 
 예 를 들 어 제목 Receive email notifications ? ** 이 있 는 라디오 그룹 구성 요소 에 는 Yes 및 No 라디오 단추 가 포함 되 어 있 습니다 . A Text Field component with the title of Email Address uses the following condition so that it is visible if Yes is selected : 
 Javascript 에서 는 조건 이 요소 이름 속성 의 값 을 사용 하 여 필드 를 참조 합니다 . In the previous example , the Element Name property of the Radio Group component is contact . 다음 코드 는 해당 예제 와 동일 한 Javascript 코드 입니다 . 
 양식 구성 요소 를 표시 하 거나 숨기 려면 : 
 특정 양식 구성 요소 를 편집 합니다 . 
 표시 / 숨기 기 를 선택 하 여 표시 / 숨기 기 규칙 편집 대화 상자 를 엽 니다 . 
 첫 번 째 드롭 다운 목록 에서 표시 또는 숨기 기 를 선택 하 여 조건 이 구성 요소 를 표시 할지 여부 를 지정 합니다 . 
 상단 줄 의 끝 에 있 는 드롭 다운 목록 에서 다음 을 선택 합니다 . 
 모두 - 구성 요소 를 표시 하 거나 숨기 려면 모든 조건 이 true 여야 하 는 경우 
 임의 - 구성 요소 를 표시 하 거나 숨기 려면 하나 이상 의 조건 만 참 이 어야 하 는 경우 
 조건 라인 ( 기본 값 으로 표시 됨 ) 에서 구성 요소 , 연산자 를 선택 한 다음 값 을 지정 합니다 . 
 조건 추가 를 클릭 하 여 필요 한 경우 조건 을 더 추가 합니다 . 예 : 
 표시 / 숨기 기 정의 의 효과 는 다음 을 보 고 테스트 할 수 있 습니다 . 
 작성 환경 의 미리 보 기 모드 에서 미리 보 기 로 전환 하 려면 페이지 다시 로드 필요 ) 
 게시 환경 에서 
 표시 / 숨기 기 조건 에서 는 요소 이름 속성 의 값 을 사용 하 여 양식 의 다른 구성 요소 를 참조 합니다 . 조건 이 삭제 되 었 거나 요소 이름 속성 이 변경 된 구성 요소 를 참조 하 는 경우 표시 / 숨기 기 구성 이 잘못 되 었 습니다 . 이러 한 경우 조건 을 직접 업데이트 해야 하 며 , 그러 지 않 으면 양식 이 로드 될 때 오류 가 발생 합니다 . 
 표시 / 숨기 기 구성 이 잘못 된 경우 구성 은 JavaScript 코드 로 만 제공 됩니다 . 코드 를 편집 하 여 문제 를 수정 하 십시오 . 코드 는 원래 구성 요소 를 참조 하 는 데 사용 되 었 던 요소 이름 속성 을 사용 합니다 . 
 양식 에 사용 할 스크립트 개발 
 스크립트 를 작성 할 때 사용 할 수 있 는 API 요소 에 대한 자세 한 내용 은 양식 과 관련 된 javadocs 를 참조 하 십시오 . 
 양식 을 제출 하 기 전 에 서비스 를 호출 하 고 오류 가 발생 하 면 서비스 를 취소 하 는 등 의 작업 에 이 옵션 을 사용 할 수 있 습니다 . 
 유효 성 검사 리소스 유형 정의 
 유효 성 검사 스크립트 포함 : 
 JSP 에서 웹 서비스 를 호출 하 고 오류 메시지 가 포함 된 com . day . cq . wcm . foundation . forms . ValidationInfo 객체 를 만듭니다 . 오류 가 발생 하 면 양식 데이터 가 게시 되 지 않 습니다 .