IBM Domino Designer 9.0.1 사용자 안내서

초판

2013년 10월 출판

이 개정판에 대한 정보

내게 필요한 옵션에 대한 IBM의 약속에 따라 본 개정판의 제품 문서를 액세스할 수 있습니다.

이 문서에 대한 업데이트

이 HTML 파일은 이번 릴리스에 대한 공식 제품 문서의 최신 드래프트를 포함하고 있습니다. 이 드래프트는 필요에 따라 분기별로 새로 고쳐집니다. 최신 제품 문서 업데이트에 대해서는 위키의 제품 문서 섹션에서 사용 가능한 릴리스 특정 기사를 참조하십시오.

인쇄

이 문서를 인쇄할 때 더 나은 인쇄 출력을 위해 일부 스타일 요소가 제거됩니다. 다음은 인쇄에 대한 몇 가지 정보입니다.
  • 문서 길이는 브라우저의 인쇄 용량을 초과할 수도 있습니다. Microsoft Internet Explorer에서는 대용량 파일을 성공적으로 인쇄할 수 있습니다.
  • 이 문서는 길이가 깁니다. 인쇄 미리보기를 사용하여 인쇄되는 페이지의 길이를 확인하십시오.
  • 문서의 일부분을 강조표시한 뒤 선택한 내용만 인쇄하도록 선택할 수 있습니다.

오프라인 작업

브라우저에서 이 문서의 로컬 사본을 저장할 수 있습니다. 브라우저마다 메뉴 및 메뉴 옵션이 다릅니다. 문서를 로컬로 저장하는 데 도움이 필요한 경우 브라우저 도움말을 참조하십시오.

피드백 제출

이 문서에 대한 피드백을 제출하려면 문서 피드백 웹 사이트를 참조하십시오.

IBM Domino Designer 9.0.1 Social Edition의 새로운 기능

Domino® Designer의 새로운 기능 및 개선사항에 대한 정보입니다.

이 주제에서는 Domino Designer 9.0.1 Social Edition에 대한 새로운 기능 및 변경사항을 나열합니다.

Domino Designer 도움말의 주기적 업데이트는 웹에서 사용할 수 있습니다. 최신 Designer 도움말 파일을 다운로드하려면 developerWorks®(http://www.ibm.com/developerworks/lotus/documentation/)의 문서 라이브러리 섹션으로 이동하십시오. 기술 라이브러리, 제품별, Domino Designer를 차례로 클릭한 다음 마지막으로 표시할 릴리스를 클릭하십시오.

Domino Designer 및 XPage 영역에 다음과 같은 이 릴리스에 대한 변경사항 및 추가사항이 포함되어 있습니다.

  • Dojo 버전 1.8.1에서 1.8.3으로 업그레이드
  • 다음 XPages 기능이 웹 내게 필요한 옵션 요구사항을 준수하도록 함
    • XPages 런타임 경험
    • XPages 팀룸 템플리트 웹 사용자 인터페이스
    • XPages 토론 템플리트 웹 사용자 인터페이스
  • 다음과 같이 XPages 9.0.1 모바일 기능 향상
    • 확장 라이브러리의 모바일 애플리케이션 페이지 및 모바일 단일 페이지 애플리케이션 제어와 함께 사용되는 이벤트 추가
    • 대중적이고 다양한 모바일 및 태블릿 디바이스를 식별하는 방식을 프로그래밍하기 쉽고 사용하기 쉬운 deviceBean 추가. 이 Bean에서 제공하는 정보를 사용하여 요청 디바이스 또는 브라우저에 따라 애플리케이션 페이지의 일부를 로드할지 또는 로드 해제할지 여부를 프로그래밍 방식으로 판별할 수 있게 됩니다.
    • 사진/비디오 파일 업로드 기능
    • iOS 및 Android용 OneUI IDX 모바일 테마
    • iOS 및 Android용 기본 모바일 테마 및 모바일 테마 겹쳐쓰기
    • iOS 또는 Android 사용자 에이전트를 모방하기 위한 모바일 디버그 사용자 에이전트 스위치
  • 동적 컨텐츠 기능을 사용하여 향상된 위키 페이지의 향상된 응답성과 함께 제공되는 검색 보트 지원을 포함하여 동적 검색(검색 엔진 최적화) 개선사항
  • Notes® 클라이언트에서 XPage의 렌더링을 향상시키는 XULRunner for XPiNC(Notes 클라이언트의 XPage)의 10.0.6으로의 업그레이드
  • 제품 도움말 색인화에 대한 개선사항
  • Domino 서버에서 서버 기반 XPage 애플리케이션 직접 실행 애플리케이션 옵션을 사용하여 Domino 서버에서 서버 기반 XPage 애플리케이션을 직접 실행하는 기능 제공
  • XPiNC(Notes 클라이언트의 XPage) 클라이언트 측 JavaScript 개선사항 - XSP.executeCommand() 기능 추가

  • 보다 높은 메모리 요구사항을 지원하기 위해 기본 Designer JVM.Properties 설정 업데이트
  • 부분 새로 고침 파일 업로드 개선
  • CKEditor를 3.6.6.1에서 3.6.6.2로 업그레이드

일부 XPage 항목에 대한 자세한 정보는 이 문서의 XPage 섹션을 참조하십시오.

이 유형의 항목에 대한 자세한 정보는 이 문서의 프로그램 가능성, 언어, 서비스 섹션을 참조하십시오.

XPage

다양한 능력과 장애를 가진 사용자가 사용할 수 있는 소프트웨어 디자인 및 작성은 비즈니스 세계에서 하나의 요구사항입니다. XPage를 사용하여 액세스 가능한 애플리케이션을 작성하려면 장애가 있는 사용자와 나이와 관련된 장애가 있는 노령의 사용자를 포함하여 다양한 계층의 사용자들이 갖고 있는 요구를 이해해야 합니다.

이 릴리스에 대한 XPage 영역에서, 개발자가 액세스 가능한 XPage 애플리케이션을 작성하고 XPage 런타임 경험을 내게 필요한 옵션 요구사항을 더 많이 준수하게 만드는 데 도움을 주는 확장된 변경사항이 구현되었습니다.

다음 항목은 이 릴리스에 대해 구현된 내게 필요한 옵션 준수 변경사항 및 추가사항의 요약을 제공합니다.

  • 새 액세스 가능 테마 소개 - 이제 XPage는 내게 필요한 옵션 가이드라인 및 요구사항을 준수하는 테마를 지원합니다. 이 테마의 이름은 oneuiv2.1_blue입니다.
  • 더 이상 사용되지 않는 역할 특성 - 다음 제어의 경우 역할 특성이 9.0.1부터 더 이상 사용되지 않습니다. 기본적으로 적절한 내게 필요한 옵션 준수 값이 생성됩니다. 내게 필요한 옵션 표준을 준수하기 위해서는 이 특성에 대해 값을 지정하지 마십시오.
    • xp:dataTable - 데이터 테이블
    • xp:fileDownload - 파일 다운로드
    • xp:viewPanel - 보기
    • xp:tabbedPanel - 탭 패널
    • xp:tabPanel - 탭 패널 참조
    • xp:pager - 페이저
    • xp:pagerControl - 페이저 참조
    • xe:dataView - 데이터 보기
  • 위젯 컨테이너 제어에 accesskey - 단축키 특성 및 tabindex - 탭 색인 특성 추가 - 이러한 특성은 릴리스 9.0.1에서 이 제어에 대한 새 특성입니다. 자세한 정보는 이 안내서의 특성 참조(확장 라이브러리) 섹션을 참조하십시오.
    • xe:widgetContainer - 위젯 컨테이너
  • titleBarLabel - 제목 표시줄 특성, placeBarLabel - 작업공간 표시줄 특성, leftColumnLabel - 왼쪽 열 패싯 특성, rightColumnLabel- 오른쪽 열 패싯 특성 - 이러한 특성은 릴리스 9.0.1의 새 특성입니다. 특성은 다음 제어에 적용됩니다. 자세한 정보는 이 안내서의 특성 참조(확장 라이브러리) 섹션을 참조하십시오.
    • xe:applicationConfiguration - 애플리케이션 구성
  • ariaLabel - ARIA Label 특성 추가 - 이 특성은 릴리스 9.0.1의 새 특성입니다. 특성은 다음 제어에 적용됩니다. 자세한 정보는 이 안내서의 제어 추가 - 특성 참조, 제어 추가 - 제어 참조특성 참조(확장 라이브러리) 섹션을 참조하십시오.
    • xe:formtable - 양식 테이블
    • xe:navigator - 네비게이터
    • xp:pager - 페이저
    • xe:pagerAddRows - 페이저 행 추가
    • xe:pagerDetail - 페이저 세부사항 표시/숨기기
    • xe:pagerExpand - 페이저 펼치기/접기
    • xe:pagerSizes - 페이저 크기
    • xe:tagCloud - 태그 클라우드
    • xe:dataView - 데이터 보기
  • summary - 데이터 요약 특성 추가 - 이 특성은 릴리스 9.0.1의 새 특성입니다. 특성은 다음 제어에 적용됩니다. 자세한 정보는 이 안내서의 특성 참조(확장 라이브러리) 섹션을 참조하십시오.
    • xe:dataView - 데이터 보기
  • headerLinkTitle - 헤더 링크 제목 특성 - 이 특성은 릴리스 9.0.1의 새 특성입니다. 특성은 다음 제어에 적용됩니다. 자세한 정보는 이 안내서의 특성 참조(확장 라이브러리) 섹션을 참조하십시오.
    • xe:viewExtraColumns - 추가 열 특성 참조
    • xe:viewSummaryColumn - 요약 열 특성 참조
  • imageAlt - 이미지 대체 텍스트 특성 - 이 특성은 릴리스 9.0.1의 새 특성입니다. 특성은 다음 제어에 적용됩니다. 자세한 정보는 이 안내서의 제어 추가 - 특성 참조제어 추가 - 제어 참조 섹션을 참조하십시오.
    • xp:tabPanel - 탭 패널 제어 참조
  • linkTitle - 링크 제목 특성 - 이 특성은 릴리스 9.0.1의 새 특성입니다. 특성은 다음 제어에 적용됩니다. 자세한 정보는 이 안내서의 특성 참조(확장 라이브러리) 섹션을 참조하십시오.
    • xe:viewExtraColumns - 추가 열 특성 참조
    • xe:viewSummaryColumn - 요약 열 특성 참조
  • readonly - 읽기 전용 특성 - 이 특성은 릴리스 9.0.1의 새 특성입니다. 특성은 다음 제어에 적용됩니다. 자세한 정보는 이 안내서의 제어 추가 - 특성 참조제어 추가 - 제어 참조 섹션을 참조하십시오.
    • xp:label - 레이블
  • 내게 필요한 옵션 준수에 대한 요구사항 문서 - 다음 제어는 이 릴리스에 문서화된 내게 필요한 옵션 준수에 대한 특정 요구사항을 가지고 있습니다. 자세한 정보는 이 안내서의 제어 추가 - 특성 참조제어 추가 - 제어 참조 섹션을 참조하십시오.
    • xp:button - 단추
    • xp:checkBox - 선택란
    • xp:checkBoxGroup - 선택란 그룹
    • xp:dataTable - 데이터 테이블
    • xp:dateTimeHelper - 날짜 시간 선택도구
    • xp:label - 레이블
    • xp:link - 링크
    • xp:message - 표시 오류
    • xp:radioGroup - 단일 선택 단추 그룹
    • xp:radio - 단일 선택 단추
    • xp:Table - 테이블
    • xp:tabbedPanel - 탭 패널
  • 최신 내게 필요한 옵션 표준에 대해 테스트되지 않은 Current® 제어 - 이러한 제어는 최신 내게 필요한 옵션 표준에 대해 테스트되지 않았습니다. 액세스 가능한 대체 경로가 권장됩니다. 자세한 정보는 이 안내서의 제어 추가 - 특성 참조, 제어 추가 - 제어 참조특성 참조(확장 라이브러리) 섹션을 참조하십시오.
    • xe:djAccordionContainer
    • xe:djAccordionPane
    • xe:djBorderContainer
    • xe:djBorderPane
    • xe:djButton
    • xe:djCheckBox
    • xe:djComboBox
    • xe:djContentPane
    • xe:djCurrencyTextBox
    • xe:djDateTextBox
    • xe:djextImageSelect
    • xe:djFilteringSelect
    • xe:djNumberSpinner
    • xe:djNumberTextBox
    • xe:djRadioButton
    • xe:djSimpleTextarea
    • xe:djStackContainer
    • xe:djStackPane
    • xe:djTabContainer
    • xe:djTabPane
    • xe:djTextarea
    • xe:djTextBox
    • xe:djTimeTextBox
    • xe:djToggleButton
    • xe:djValidationTextBox
    • xe:djxDataGrid
    • xe:djxDataGridColumn
    • xe:djxDataGridRow
    • xe:dropDownButton
    • xe:dynamicViewPanel
    • xe:inPlaceForm
    • xe:linksList
    • xe:listView
    • xe:listViewColumn
    • xe:popupMenu
    • xe:sortLinks
    • xe:toolbar
    • xe:tooltip
    • xe:tooltipDialog
    • xp:viewColumn
    • xp:viewColumnHeader
    • xp:viewPager
    • xp:viewPanel
    • xp:viewTitle
  • 동적 컨텐츠 개선사항 - 이 릴리스의 경우 클라이언트 측 JavaScript 코드를 실행할 수 없는 검색 보트에 의한 문서 색인화를 지원하도록 동적 컨텐츠 기능이 개선되었습니다.

    웹 크롤러로 인식되어야 하는 사용자 에이전트 ID를 지정할 수 있도록 새 특성이 구성 파일에 추가되었습니다. 목록에 표시된 ID가 요청의 사용자 에이전트 헤더에 포함되는 경우 링크를 렌더링할 때나 재지정 응답의 위치 헤더에서 다른 URL이 리턴됩니다. 차이점은 "#" 부호가 "?" 또는 "&"로 대체된 것입니다.

    이는 content 매개변수가 요청에 제공되는 경우에만 발생합니다. 이 검사가 수행되면 결과는 성능 영향을 최소화하도록 세션 속성에 저장됩니다.

    리턴된 URL을 따름으로써 웹 크롤러는 클라이언트 측 JavaScript를 실행하지 않고 문서를 검색할 수 있습니다. 다음 예제는 이 특성을 사용하는 방법을 보여줍니다.

    # ########################################
    # 검색 엔진 웹 크롤러 사용자 에이전트 ID
    # ########################################
    # 웹 크롤러 사용자 에이전트 ID의 쉼표로 분리된 소문자 목록. 이 특성이 누락된 경우 잘 알려진 검색 크롤러(Google, Bing, Yahoo)의 하드 코드된 목록이 사용됩니다. 몇몇 키워드가 특별한 의미로 사용됩니다.
    # <empty>: 이 특성은 사용되지 않으며 사용자 에이전트 헤더에 대해 검사가 수행되지 않습니다.
    # <auto>: 이 키워드는 하드 코드된 검색 크롤러 ID 목록으로 대체됩니다.
    
    #xsp.search.bot.id.list=<empty> (검사를 사용하지 않도록 설정함) 일반적 동작이 뒤따르며 사용자 에이전트에 대해 검사가 수행되지 않습니다.
    
    #xsp.search.bot.id.list=<auto>,blekkobot (사용자 에이전트에 대해 검사되는 ID 목록에 google, bing, yahoo 및 blekko 검색 크롤러가 포함되며, ID 중 하나를 사용자 에이전트 헤더에서 찾는 경우 보트로 간주되고 URL이 색인화를 돕도록 표준화됩니다. 즉 URL에 # 부호 사용을 피합니다.)

    이 구성이 사용하도록 설정되는 경우 Google 검색 보트의 사용자 에이전트 Mozilla/5.0(호환 가능; Googlebot/2.1; +http://www.google.com/bot.html)은 보트로 인식되며 대체 동작이 뒤따릅니다.

  • Domino 서버에서 서버 기반 XPage 애플리케이션 직접 실행 애플리케이션 옵션을 사용하여 Domino 서버에서 서버 기반 XPage 애플리케이션을 직접 실행하는 기능 제공

    이 기능이 작동되게 하려면 먼저 HTTP 서버에 대한 액세스를 제공하는 계정을 Notes에서 설정해야 합니다. Notes 계정을 작성하거나 보려면 Notes에서 파일 -> 환경 설정 -> 계정을 선택한 후 계정이 올바른 유형(HTTP/HTTPS)을 가지고 있고 서버에 액세스하는 데 사용해야 하는 완전한 호스트 이름을 포함하는지 확인하십시오. SSO를 사용 중이면 해당 이름은 서버에 등록된 서버 이름과 정확하게 일치해야 합니다. 호스트 이름이 Notes 작업공간의 정보에서 정확하게 파생되지 않으면 오류가 표시될 수 있습니다.

    이 경우 사용하려는 RunOnServer 애플리케이션을 등록하고 호스트 이름을 제공해야 합니다. 이를 수행하려면 파일 > 환경 설정 > XPage 성능 > RunOnServer로 이동하여 애플리케이션, 서버 및 호스트 이름을 추가하십시오.

    계정을 설정한 후 애플리케이션의 HTTP 주소를 Notes URL 주소 표시줄에 입력하여 XPage와 개별적으로 테스트할 수 있습니다. 애플리케이션이 프롬프트를 표시하지 않고 로드되는 경우 Notes 임베디드 브라우저가 Notes 계정 프레임워크에 정의된 정보를 올바르게 전달합니다. 또한, 주소 표시줄에 사용한 동일한 서버 이름이 저장되고 RunOnServer 환경 설정에서 선택적 호스트 이름으로 사용되는지 확인하십시오.

  • XPiNC(Notes 클라이언트의 XPage) 클라이언트 측 JavaScript 개선사항 - XSP.executeCommand() 기능 추가. XSP.executeCommand(commandID, commandParameters)가 9.0 이후에 추가되었습니다. commandID는 요청된 기능을 식별합니다. commandParams는 임시 인수 값을 포함하는 오브젝트 또는 널일 수 있습니다. 이 기능은 다른 XPiNC XSP JavaScript 명령(예: XSP.alert(), XSP.confirm(), XSP.publishEvent() 등)과 동일한 런타임 경로를 사용합니다.

    XSP.executeCommand()가 호출되면 XPage는 등록된 명령 제공자 목록을 검색합니다. 명령을 처리하는 제공자를 찾으면 명령이 호출되고 실행되며 필요한 경우 결과가 리턴됩니다.

프로그램 가능성, 언어, 서비스

프로그램 가능성 및 언어 영역에서 다음 사항이 추가 또는 변경되었습니다.

  • 모바일 제어 이벤트 - 모바일 기능 향상 영역에서 확장 라이브러리의 모바일 애플리케이션 페이지 및 모바일 단일 페이지 애플리케이션 제어와 함께 사용되도록 다음 이벤트가 추가되었습니다.
    • onOrientationChange
    • onBeforeTransitionIn
    • onAfterTransitionIn
    • onBeforeTransitionOut
    • onAfterTransitionOut

    자세한 정보는 이 사용자 안내서를 참조하십시오.

  • deviceBean - 모바일 애플리케이션 개발 기능 향상 영역에서 deviceBean과 연관된 API가 이 릴리스에 추가되었습니다.

    이 버전 이전 버전에서는 XPages가 context.getUserAgent() 서버 측 사용자 에이전트 API를 제공했습니다. 이 API는 요청 사용자 에이전트를 식별하는 데 사용됩니다. 이를 수행하면 CSS와 클라이언트 측 JavaScript와 같은 자원의 서버 측 관리를 지원하는 데 도움이 됩니다. 또한, 애플리케이션 레이아웃을 설정할 수 있고 요청 사용자 에이전트에게 응답을 전송하기 전에 XPage 내에서 구성요소를 표시하거나 숨길 수 있습니다.

    모바일 컴퓨팅의 인기를 고려하면 이제는 일반적인 데스크탑 브라우저 애플리케이션을 넘어 여러 사용자 에이전트 유형(즉, 모바일 디바이스)을 식별할 수 있는 것이 중요합니다. 이 태스크를 지원하기 위해 deviceBean이라는 새 관리 Bean이 XPage 런타임에 도입되어 서버 측 JavaScript 또는 표현식 언어(EL) 계산 표현식 내에서 직접 대중적이고 다양한 모바일 및 태블릿을 식별하기 위한 사용하기 쉽고 프로그래밍하기 쉬운 방식을 제공합니다. 이 Bean에서 제공하는 정보를 사용하여 요청 디바이스 또는 브라우저에 따라 애플리케이션 페이지의 일부를 로드할지 또는 로드 해제할지 여부를 프로그래밍 방식으로 판별할 수 있게 됩니다.

    예를 들어, EL에서 # {deviceBean.mobile}을 호출하거나 서버 측 JavaScript에서 # {javascript:deviceBean.isMobile()}을 호출하여 모바일 디바이스를 식별할 수 있습니다. 또한, deviceBean은 확장점을 지원하여 IBM®의 향후 업그레이드 팩에서 향상되거나 사용자 정의 프로젝트의 요구를 충족할 수 있도록 맞게 조정될 수 있습니다.

    이 Bean에서 다음 API를 사용할 수 있습니다.

    • deviceBean.mobile - EL 버전입니다. 디바이스를 모바일 디바이스로 식별합니다.
    • deviceBean.isMobile() - JavaScript 버전입니다. 디바이스를 모바일 디바이스로 식별합니다.
    • deviceBean.tablet - EL 버전입니다. 디바이스를 태블릿으로 식별합니다.
    • deviceBean.isTablet() - JavaScript 버전입니다. 디바이스를 태블릿으로 식별합니다.
    • deviceBean.getValue() - JavaScript 버전입니다. 다른 모든 메소드에 다른 방식으로 액세스하는 데 사용되며 향후 확장에 대한 액세스 권한을 부여하는 데도 사용됩니다. 예를 들어, getValue('mobile')을 사용하여 isMobile과 동일한 결과를 리턴하게 할 수 있으며 또는, 표현식 언어(EL)를 사용할 때 deviceBean.chrome이 될 수 있는 확장 호출 isChrome()을 리턴하는 getValue('chrome')을 사용할 수 있습니다.
    • deviceBean.iphone - EL 버전입니다. 디바이스를 iPhone으로 식별합니다.
    • deviceBean.isIphone() - JavaScript 버전입니다. 디바이스를 iPhone으로 식별합니다.
    • deviceBean.ipad - EL 버전입니다. 디바이스를 iPad로 식별합니다.
    • deviceBean.isIpad() - JavaScript 버전입니다. 디바이스를 iPad로 식별합니다.
    • deviceBean.android - EL 버전입니다. 디바이스를 Android로 식별합니다.
    • deviceBean.isAndroid() - JavaScript 버전입니다. 디바이스를 Android로 식별합니다.
    • deviceBean.blackberry - EL 버전입니다. 디바이스를 Blackberry로 식별합니다.
    • deviceBean.isBlackBerry() - JavaScript 버전입니다. 디바이스를 Blackberry로 식별합니다.
    • deviceBean.windows - EL 버전입니다. 디바이스를 Windows 모바일 디바이스로 식별합니다.
    • deviceBean.isWindows() - JavaScript 버전입니다. 디바이스를 Windows 모바일 디바이스로 식별합니다.
    • deviceBean.version['key'] - EL 버전입니다. 지정한 키의 버전을 리턴합니다(예: #{deviceBean.version['iphone']}).
    • deviceBean.getVersion('key') - JavaScript 버전입니다. 지정한 키의 버전을 리턴합니다(예: #{deviceBean.version['iphone']}).
    다음 코드 샘플은 deviceBean에서 사용 가능한 API를 사용하는 몇 가지 예제를 제공합니다.
    <?xml version="1.0" encoding="UTF-8"?>
    <xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">
    	<xe:singlePageApp id="singlePageApp1"
    			linkRequestParam="name">
    		<xe:appPage id="appPage1" pageName="appPage1">
    			<xe:djxmHeading id="djxmHeading1">deviceBean</xe:djxmHeading>
    	<xe:djxmRoundRectList id="djxmRoundRectList1">
    				<xe:djxmLineItem id="djxmLineItem2" label="Mobile"
    			linkRequestParam="name">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem5" label="Tablet"
    			linkRequestParam="name">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem1" label="Android"
    	checkedValue="#{javascript:session.getUserName()}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem7" label="Apple"
    					rightText="#{javascript:deviceBean.getValue
    ('apple')}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem8" label="Windows"
    					rightText="#{javascript:deviceBean.getValue
    ('windows')}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem9" label="Blackberry"
    					rightText="#{javascript:deviceBean.getValue
    ('blackberry')}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem22" label="iPhone"
    	checkedValue="#{javascript:session.getUserName()}">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem23" label="iPad"
    			linkRequestParam="name">
    		</xe:djxmLineItem>
    				<xe:djxmLineItem id="djxmLineItem24" label="iPod"
    					rightText="#{javascript:deviceBean.getValue
    ('ipod')}">
    		</xe:djxmLineItem>
    	</xe:djxmRoundRectList>
    		</xe:appPage>
    	</xe:singlePageApp>
    </xp:view>

이 릴리스의 Domino 액세스 서비스(REST API) 영역에서는 다음 사항이 추가 또는 변경되었습니다.

  • Domino 코어 서비스 - 이 REST API는 특정 서비스 도메인에 국한되지 않는 자원에 대한 액세스를 제공합니다. 예를 들어, 대부분의 애플리케이션은 인증된 사용자의 비밀번호에 대한 정보(예: 최종 변경 날짜, 만기 날짜)를 읽어야 합니다. 이러한 요구사항은 특정 REST 서비스(일정관리, 메일 등)에 국한된 것이 아니기 때문에 이 기능은 코어 서비스에 포함됩니다. 코어 서비스에서 사용할 수 있는 자원은 다음과 같습니다.
    • 비밀번호 통계 자원(pwstats)
    • nonce 자원
  • Domino 일정관리 서비스 - 일정관리 데이터에 액세스하기 위한 자원과 메소드를 제공하는 REST API입니다. 서비스는 JSON 및 iCalendar 두 형식으로 일정관리 데이터를 표시합니다.

제품 개요

IBM Domino Designer는 XPages, 양식, 보기 및 기타 요소(예: 제어)를 사용하여 IBM Domino 플랫폼에 대한 애플리케이션 개발을 지원합니다.

XPage는 협업적인 웹 기반 애플리케이션을 작성하는 신속한 애플리케이션 개발 기술입니다. XPage는 Java™ Server Faces 기술에 빌드된 풍부한 사용자 인터페이스 및 데이터 액세스 제어를 제공합니다. XPages는 기존 IBM Notes 및 Domino NSF 자산(예: 문서, 보기, 에이전트, 수식 및 보안)의 통합을 지원합니다. 이러한 애플리케이션은 브라우저와 Notes 클라이언트 둘 다에서 동적 웹 2.0 페이지로 렌더링될 수 있습니다. 개발 인터페이스는 직관적인 끌어서 놓기 디자인 환경과 XML 소스 환경을 제공합니다. 프리젠테이션은 캐스케이딩 스타일시트(CSS)를 통해 제어되며 비즈니스 로직은 JavaScript를 통해 개발할 수 있습니다.

Domino Designer 문서는 다음을 포함합니다.

  • Domino Designer 사용자 안내서는 제품을 소개하고 XPages 및 관련 지원 요소에 대해 설명합니다. 또한 이 정보는 버전 8.5 이후에 추가된 Domino Designer 기능도 설명합니다.
  • Domino Designer XPages 참조는 Domino 오브젝트에 대한 JavaScript 인터페이스, 단순 조치 및 기타 XPages 관련 프로그램 항목을 설명합니다.
  • Domino Designer Basic 사용자 안내서 및 참조서는 양식, 보기, 수식 언어, LotusScript® 등을 포함하여 Domino Designer의 양식 기반 요소를 설명합니다.

이 문서는 IBM Domino, IBM Domino Designer, IBM Notes, IBM iNotes® 및 IBM Notes Traveler 제품을 참조합니다.

XPage 이해

XPages 애플리케이션은 Domino 서버 또는 Notes 클라이언트에서 해석하는 XML이며 웹 브라우저 또는 Notes 클라이언트에서 렌더링됩니다. 사용자는 페이지의 제어와 상호작용하여 서버로 요청을 보낼 수 있습니다.

예를 들어, 다음 XML 코드는 하나의 편집 상자와 두 개의 단추가 있는 XPage 애플리케이션을 나타냅니다.
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="create"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText><xp:br></xp:br>
	<xp:button id="button1" value="Submit"><xp:eventHandler event="onclick" submit="true" 
		refreshMode="complete" immediate="false" save="true"></xp:eventHandler></xp:button>
	<xp:button id="button2" value="Cancel"><xp:eventHandler event="onclick" submit="true" 
		refreshMode="complete" immediate="true" save="false"></xp:eventHandler></xp:button>
	<xp:this.navigationRules>
		<xp:navigationRule outcome="xsp-success" viewId="/main.xsp"></xp:navigationRule>
	</xp:this.navigationRules>
</xp:view>
다음은 예제 XML 코드의 의미를 한 행씩 설명합니다.
  • xmlns:xp="http://www.ibm.com/xsp/core"

    Domino는 xp를 요소 약어로 사용하여 네임스페이스 http://www.ibm.com/xsp/core에 제어 및 기타 아티팩트를 정의합니다.

  • xp:dominoDocument var="document1" formName="create"

    XPages 애플리케이션은 create라는 Domino 양식과 연관됩니다.

  • xp:inputText id="inputText1" value="#{document1.subject

    입력 상자는 create 양식의 subject라는 필드에 바인드됩니다.

  • xp:button id="button1" value="Submit", save="true", xp:navigationRule outcome="xsp-success" viewId="/main.xsp"

    첫 번째 단추를 클릭하면 요청이 서버로 전송됩니다. 서버는 create 양식을 기반으로 입력 상자의 데이터를 새 문서에 저장한 다음 main이라는 다른 페이지를 클라이언트로 보냅니다.

  • id="button2" value="Cancel", save="false"

    두 번째 단추를 클릭해도 서버로 요청이 전송됩니다. 이 경우, 서버는 main 페이지를 다시 보냅니다.

Domino Designer는 네비게이터, XPages 편집기, 제어 팔레트, 특성 탭, 이벤트 탭 및 기타 아티팩트를 포함하는 사용자 인터페이스(UI)를 제공합니다. 다음은 이전 XML 코드로 작성한 페이지가 Domino Designer의 디자인 모드에서 표시되는 방식을 나타냅니다.
XPages
사용자 인터페이스

메뉴를 사용하거나 끌어서 놓아 편집기에서 제어와 텍스트를 처리할 수 있습니다. 다양한 탭을 사용하여 특성과 이벤트의 값을 설정할 수도 있습니다. 소스 탭을 사용하여 사용자가 직접 XML을 편집할 수도 있습니다.

사용자는 XPage 특성을 사용하여 Domino 양식과 Domino 보기를 데이터 소스로 식별하고 제어 특성을 사용하여 제어를 데이터 소스의 필드에 바인딩합니다.

중요사항: XML을 직접 편집하는 경우 오류가 발생하여 XPage가 작동하지 않을 수 있으므로 주의하십시오.
코어 제어(Core Controls)에는 다음과 같은 메뉴가 있습니다.
  • 입력 확보 제어 - 편집 상자, 서식있는 텍스트, 다중 행 편집 상자, 목록 상자, 콤보 상자, 선택란, 단일 선택 단추, 선택란 그룹, 단일 선택 단추 그룹, 날짜 시간 선택도구
  • 조치 수행 제어 - 단추, 파일 업로드, 파일 다운로드
  • 표시 제어 - 링크, 레이블, 계산된 필드, 이미지, 표시 오류, 페이저
  • 사용자 정의 제어 - 편집 가능한 영역
컨테이너 제어(Container Controls)에는 다음과 같은 메뉴가 있습니다.
  • 패널 - 페이지에 다른 제어를 포함하는 사각형을 작성합니다.
  • 반복 - 제어를 다양한 횟수로 반복합니다.
  • 페이지 포함 - 다른 XPage를 통합합니다.
  • 테이블 - 고정된 수의 열과 행이 있는 테이블을 작성합니다.
  • 보기 - Domino 보기를 통합합니다.
  • 데이터 테이블 - 가운데 행이 숫자 변수이고 데이터 콜렉션에 바인드되는 테이블을 작성합니다.
  • 탭 패널 - 탭을 클릭할 때 각각 액세스되는 겹침 패널 세트를 작성합니다.
  • 섹션 - 접을 수 있는 패널을 작성합니다.
프로그래밍 인터페이스는 서버와 클라이언트 둘 다에서 실행되는 JavaScript입니다.
  • 클라이언트 JavaScript는 onclick, onbluronfocus와 같은 이벤트에 첨부됩니다. 이러한 스크립트는 서버로 요청을 보내고 웹 DOM(Document Object Model)을 사용하기 전에 웹 브라우저 또는 Notes 클라이언트에서 실행됩니다. 예를 들어, 입력 상자에 컨텐츠가 있는지 확인하거나 데이터를 제거하는 서버 조작을 확인하는 스크립트를 작성할 수 있습니다.
  • 서버 JavaScript도 이벤트에 첨부되지만 요청이 서버로 전달된 후에 시작됩니다. 또한 서버 JavaScript를 사용하여 제어 값, 데이터 바인딩 및 특성을 계산할 수도 있습니다. 서버 JavaScript에는 Domino 오브젝트에 대한 라이브러리를 포함한 광범위한 라이브러리 세트에 대한 액세스가 있습니다. 이들은 LotusScript 및 Java를 통해 액세스할 수 있는 것과 동일한 Domino 오브젝트입니다. 이들은 Domino 데이터 저장소에 액세스하고 Domino 환경을 처리합니다.
그밖에 사용 가능한 컨텍스트는 단순 조치와 표현식 언어(EL)입니다.

글로벌 오브젝트는 코어 오브젝트를 위한 단순 작성 메커니즘을 제공합니다. 예를 들어, session은 현재 세션의 NotesSession 오브젝트이며 database는 현재 애플리케이션의 NotesDatabase 오브젝트이고 context는 JavaScript를 실행 중인 컨텍스트의 XSPContext 오브젝트입니다. 범위 지정된 변수는 제어, 페이지 및 세션 전체에서 값을 공유하는 단순 메커니즘을 제공합니다.

양식 및 보기

Domino에서 양식은 사용자에게 문서를 표시할 방법과 양식 데이터 항목을 저장할 방법을 정의합니다. 보기는 열과 행으로 문서를 보고합니다.

사용자가 새 문서를 여는 경우 문서를 정의하는 양식이 클라이언트 UI의 페이지를 렌더링하는 데 사용됩니다. 사용자가 새 문서를 저장하는 경우 UI의 데이터가 사용되어 양식의 데이터 정의에 따라 문서를 작성합니다. 마찬가지로 사용자가 기존 문서를 여는 경우 데이터가 양식의 데이터 정의에 따라 클라이언트 UI에 렌더링됩니다.

일반적으로 보기의 각 행은 하나의 문서를 나타냅니다. 그러나 XPage 애플리케이션에서는 둘 이상의 보기를 쉽게 결합할 수 있으므로 각 행은 실제로 해당 행에 대한 둘 이상의 문서 보기입니다.

열에는 문서의 데이터 값 또는 문서의 마지막 수정 날짜와 같은 계산된 정보가 포함될 수 있습니다. 보기는 더 나은 문서를 제공하기 위해 정렬되고 분류될 수 있습니다. 보기는 데이터에 대한 액세스 메커니즘으로 사용될 수 있습니다(예: 사용자가 보기의 행을 두 번 클릭하여 문서를 열도록 허용).

XPage 애플리케이션은 양식과 보기를 둘 다 사용합니다. 양식을 사용하여 페이지의 제어를 Domino 데이터 정의에 연결할 수 있습니다. 우선 페이지를 양식과 연관시키십시오. 그런 다음 페이지의 데이터 입력 제어를 양식의 필드에 바인드하십시오. Domino 보기는 XPage 보기 제어에 통합될 수 있습니다.

페이지에서 사용할 수 있는 기타 Domino 요소는 다음과 같습니다.
  • JavaScript 라이브러리
  • 이미지 자원
  • 스타일시트 자원
  • 테마 자원

Domino Designer에서 탐색

IBM Domino Designer는 액세스하기 쉬운 보기, 팔레트 및 편집기로 배열되는 Eclipse 퍼스펙티브로 설치됩니다. 기본 메뉴, 오른쪽 마우스 단추 클릭 메뉴, 그리고 보기, 팔레트 및 편집기 제목 표시줄의 아이콘을 사용하여 태스크를 수행할 수 있습니다.

IBM Domino Designer 퍼스펙티브는 다음과 같습니다.
  • Domino Designer는 애플리케이션 네비게이터의 모든 디자인 요소를 표시하며 기본 퍼스펙티브입니다.
  • XPage는 XPage 개발에 필요하지 않은 디자인 요소를 제외합니다.
  • 양식/보기는 XPage 개발에 필요한 디자인 요소만 제외합니다.

퍼스펙티브를 변경하려면 > 퍼스펙티브 열기를 클릭하십시오.

퍼스펙티브의 컨텐츠를 조정하려면 파일 > 환경 설정 > Domino Designer > 애플리케이션 네비게이터로 이동하십시오.

IBM Domino Designer 퍼스펙티브는 Eclipse 규칙에 따라 정의되므로 보기를 이동하고 크기 조정하고 닫고 열 수 있습니다. 새 배열을 사용자가 선택하는 이름의 새 퍼스펙티브로 저장하려면 메뉴 표시줄에서 > 퍼스펙티브를 다른 이름으로 저장을 선택하십시오.

기본 Eclipse 키보드 단축키인 Ctrl+F7을 사용하거나 Eclipse 기본 메뉴에서 > 탐색을 클릭하여 탐색할 수도 있습니다.

숨겨진 보기를 보려면 기본 Eclipse 메뉴에서 > Eclipse 보기 표시를 클릭한 다음 목록에서 숨겨진 보기를 선택하십시오.

디자인 요소 및 애플리케이션 네비게이터

애플리케이션 네비게이터는 사용 가능한 디자인 요소를 표시합니다.

기본적으로 애플리케이션 네비게이터는 창의 왼쪽에 있습니다. 애플리케이션을 작성하거나 열 때 해당 요소가 애플리케이션 네비게이터에 표시됩니다.
  • 애플리케이션을 작성하려면 파일 > 새로 작성 > 애플리케이션을 클릭하거나 애플리케이션 네비게이터를 마우스 오른쪽 단추로 클릭하고 새 애플리케이션을 선택하십시오(Ctrl-N).
  • 기존 애플리케이션을 열려면 애플리케이션 네비게이터에서 선택하거나 여기에 없는 경우 파일 > 애플리케이션 > 열기를 클릭하고 선택하십시오.
  • 사용 가능한 디자인 요소 유형과 디자인 요소 그룹을 보려면 애플리케이션을 펼치십시오. 그룹을 펼쳐서 그룹 내의 디자인 요소 유형을 확인하십시오.
  • 선택한 유형의 디자인 요소를 작성하려면 메뉴를 사용하거나 마우스 오른쪽 단추를 클릭하십시오. 디자인 요소는 작성될 때 해당 유형 아래에 표시됩니다. 디자인 요소의 목록은 요소 유형을 두 번 클릭할 때 편집기에 표시됩니다. 디자인 요소는 요소를 두 번 클릭하여 편집을 위해 열 수 있습니다.

다음 표는 각 디자인 요소를 설명하고 일반적으로 사용되는 애플리케이션 유형을 표시합니다.

디자인 요소 설명
양식 문서를 작성하고 표시하기 위한 구조를 제공합니다. XPage의 경우 양식을 데이터 소스로 사용할 수 있습니다.
보기 정렬되거나 분류된 문서 목록입니다. 양식 기반 Designer의 경우 보기는 데이터베이스에 저장된 데이터의 입력점입니다. 보기는 XPage에 통합될 수 있습니다.
폴더 관련 문서 또는 문서 그룹을 저장하는 데 사용되는 컨테이너입니다. 폴더에는 보기와 같은 디자인 요소가 있습니다.
XPage XPage는 애플리케이션을 사용하는 동안 사용자가 상호작용하는 텍스트 및 사용자 인터페이스(UI) 제어를 정의합니다.
사용자 정의 제어 단일 오브젝트로 저장된 UI 제어의 콜렉션입니다.
프레임셋 애플리케이션에 구조를 추가하기 위한 프레임 콜렉션입니다.
페이지 정보를 표시하는 데이터베이스 설계 요소입니다.
공유된 요소 - 보조 양식 단일 오브젝트에 저장된 양식 요소의 콜렉션입니다.
공유된 요소 - 필드 데이터를 수집합니다. 양식, 부속 양식 및 레이아웃 영역에 필드를 작성합니다. XPage의 경우, 필드에 제어를 바인드합니다.
공유된 요소 - 열 필드 값 및 문서에 대한 기타 정보를 표시합니다. 보기 및 폴더에 열을 작성합니다.
공유된 요소 - 아웃라인 애플리케이션을 구성하는 구조를 제공하고 요소가 탐색 패널에 표시되는 방법을 제어합니다.
공유된 요소 - 네비게이터 사용자에게 애플리케이션의 특정 부분을 지정하는 그래픽 로드 맵입니다.
코드 - 에이전트 애플리케이션의 일부에 사용자 작동 또는 백그라운드 태스크를 설정합니다.
코드 - 공유 수행 양식 또는 보기에 사용자 작동 태스크를 설정합니다.
코드 - 스크립트 라이브러리 클라이언트 또는 서버 프로그래밍 요소에 포함할 LotusScript, Java 또는 JavaScript 코드를 포함합니다. JavaScript 라이브러리는 XPage용입니다.
코드 - 데이터베이스 스크립트 애플리케이션 레벨 이벤트에 대해 작동하는 프로그래밍 요소입니다(예: 애플리케이션 열기 또는 닫기).
코드 - 웹 서비스 제공자 XML 기반 자체 포함, 자체 설명, 모듈형 애플리케이션이며 웹에서 공개 및 호출될 수 있습니다. 웹 서비스 제공자는 Domino 서버에 호스트되는 웹 서비스이며 다른 컴퓨터에서 호출할 수 있습니다.
코드 - 웹 서비스 사용자 다른 컴퓨터에서 웹 서비스를 호출합니다.
코드 - Java

(Java 퍼스펙티브의 Code/Java 아래에서) 범위가 NSF 프로젝트인 Java Class, Interface 또는 Enum 요소를 작성합니다. Java 코드는 XPage의 코드에 의해 직접 호출할 수 있습니다.

코드 - Jar

애플리케이션 NSF에 포함된 패키지된 Java 코드/라이브러리에 대해 작업할 수 있는 기능을 제공합니다. JAR를 서버에 배치하거나 애플리케이션 데이터베이스에 소스 파일을 고유하게 포함할 필요가 없습니다. 이 요소는 XPage 애플리케이션에만 사용 가능합니다. 여기서 JAR는 XPages 런타임이 자동으로 로드합니다.

데이터 - 데이터 연결 Domino 애플리케이션과 외부 데이터 소스 간의 데이터 교환을 설정하는 자원입니다.
데이터 - DB2® Access 보기 Notes 데이터의 DB2 보기를 정의합니다.
자원 - 이미지 XPage, 페이지, 양식, 부속 양식, 수행 단추 및 아웃라인 항목에서 그래픽 또는 아이콘으로 사용될 수 있으며 양식, 문서, 페이지, 테이블 셀 및 수행 단추에서 배경 이미지로 사용될 수 있습니다.
자원 - 파일 애플리케이션에서 비NSF 파일을 공유할 수 있습니다.
자원 - 애플릿 Domino 애플리케이션에서 실행할 수 있는 자체 포함된 Java 프로그램입니다.
자원 - 스타일시트 작성하거나 가져올 수 있습니다. 기본적으로 XPage 및 UI 제어는 Domino와 함께 제공되는 기본 캐스케이딩 스타일시트(CSS)를 사용합니다. 기본값을 이러한 자원으로 대체할 수 있습니다.
자원 - 테마 애플리케이션의 모양을 정의하는 데 사용할 수 있는 HTML 생성의 서버 측 사용자 정의입니다. 기본적으로 XPage 및 사용자 인터페이스 제어는 서버에 대해 정의된 모든 테마를 사용합니다. 해당 글로벌 테마를 모든 애플리케이션에 대해 수정하거나 애플리케이션 특정 테마로 대체할 수 있습니다.
자원 - 문서 정보 애플리케이션의 목적을 설명합니다.
자원 - 문서 사용 사용자에게 지시사항을 제공합니다.
자원 - 아이콘 사용자가 책갈피 분할창에서 빠르게 데이터베이스를 식별하도록 도와주며 아이콘 편집기에서 사용자의 애플리케이션으로 불러올 수 있습니다.
컴포지트 애플리케이션 - 연결 특성 컴포지트 애플리케이션 내의 WSDL 파일에 대한 액세스를 제공합니다.
컴포지트 애플리케이션 - 애플리케이션 컴포지트 애플리케이션의 정의를 포함하는 필수 XML 파일에 대한 액세스를 제공합니다.
컴포지트 애플리케이션 - 컴포넌트 XPage 기반인 경우 컴포지트 애플리케이션에 배치됩니다.
애플리케이션 구성 - 애플리케이션 특성 애플리케이션 범위의 특성을 설정할 수 있습니다.
애플리케이션 구성 - Faces-config webcontent\web-inf\faces-config.xml에 대한 편집 액세스를 제공합니다. 이는 사용자 정의 변환기/유효성 검증기와 같은 다른 것들 중에 XPages에서 관리되는 Bean을 구성하는 데 사용되는 구성 파일입니다.
애플리케이션 구성 - Xsp 특성 xsp.properties라는 XPage 프레임워크 매개변수 콜렉션을 포함하는 파일에 대한 편집 액세스를 제공합니다. 이는 애플리케이션 또는 서버 레벨에서 애플리케이션 XPage에 XPage 설정을 설정하고 제어하는 데 사용됩니다. 모든 XPage NSF 애플리케이션에는 xsp.properties 파일이 있습니다.

이 사용자 안내서는 XPage 및 XPage를 사용하는 애플리케이션에 중점을 두므로 XPage 애플리케이션에서 사용되는 애플리케이션의 서브세트에 대해 자세히 설명합니다. 추가 "양식 기반" 디자인 요소 및 "양식 기반" 애플리케이션에 대한 자세한 문서는 Domino Designer Basic 사용자 안내서 및 참조서에 있습니다.

디자인 요소 유형 선택 및 필터링

환경 설정 > Domino Designer > 애플리케이션 네비게이터에서 선택을 표시하여 애플리케이션 네비게이터에 표시할 디자인 요소 유형을 선택하고 필터링할 수 있습니다.

환경 설정 패널의 요소를 선택하여 작업하고 표시할 요소를 선택하십시오. 패널의 \list에서 퍼스펙티브를 선택하면 Domino Designer, XPages, 양식/보기 Domino Designer의 세 퍼스펙티브 각각에 대해 별도의 선택 및 필터링 옵션도 설정할 수 있습니다.

디자인 요소 버전 비교

특정 항목을 마우스 오른쪽 단추로 클릭하고 컨텍스트 메뉴에서 비교 유형을 선택하여 디자인 요소 또는 자원의 여러 버전을 비교할 수 있습니다. 비교가 수행될 때 비교 편집기가 편집기 영역에 표시됩니다. 버전 간의 차이는 비교 편집기에서 강조표시되어 비교된 버전 간의 변경사항을 찾아보고 복사할 수 있습니다.

다음과 같은 비교 유형을 수행할 수 있습니다.
  • 비교 대상 > 로컬 히스토리 - 선택된 요소 또는 자원을 변경사항을 저장할 때 관리되는 로컬 히스토리의 것과 비교합니다.
  • 비교 대상 > 서로 - 두 개 또는 세 개의 선택된 요소나 자원을 서로 비교합니다.

디자인 편집기

사용자는 디자인 편집기에서 XPage 및 기타 디자인 요소를 편집하고 디자인 요소 목록을 살펴봅니다.

특성 보기에는 편집기에서 현재 선택된 항목에 대한 특성이 표시됩니다. 예를 들어, XPage에서 사용자 인터페이스(UI) 제어를 사용하여 작업 중인 경우 XPages 편집기에서 해당 UI 제어를 클릭하는 즉시 특성 보기에 해당 UI 제어의 특성이 표시됩니다.

편집기에서 다음 태스크를 수행할 수 있습니다.

작업 조치
디자인 요소 또는 목록 열기 애플리케이션 네비게이터에서 디자인 요소 또는 목록을 선택하십시오. 두 번 클릭하거나 파일 > 열기를 클릭하십시오.
열린 디자인 요소와 목록간에 전환 표시할 디자인 요소 또는 목록의 탭을 클릭하십시오.
디자인 요소 또는 목록 닫기 디자인 요소 또는 목록 탭에서 닫기 아이콘(X)을 클릭하거나 탭을 선택하고 파일 > 닫기를 클릭하십시오.
현재 항목을 포함하여 디자인 요소 및 목록 모두 닫기 파일 > 모두 닫기를 클릭하십시오. 탭을 마우스 오른쪽 단추로 클릭하고 모두 닫기를 선택할 수도 있습니다.
편집기 최대화 최대화 아이콘을 클릭하거나 탭을 두 번 클릭하십시오.
편집기를 원래 크기 및 위치로 복원 복원 아이콘을 클릭하거나 탭을 두 번 클릭하십시오. 이 함수는 편집기를 최대화한 경우에만 사용할 수 있습니다.
키보드 화살표를 사용하여 편집기 크기 조정 탭을 오른쪽 마우스 단추로 클릭하여 크기를 선택한 다음 왼쪽, 오른쪽, 또는 아래를 선택하여 편집기의 모서리를 강조표시하십시오. 해당되는 키보드 화살표를 눌러 편집기를 펼치거나 접으십시오.

소스 편집기

소스 편집기를 사용하여 XPage 소스 코드를 직접 편집할 수 있습니다.

XPage를 편집 중인 경우 소스 탭을 사용하여 XPage 소스 코드를 직접 편집할 수 있습니다. XPage 언어에 익숙한 경우 이는 매우 유용할 수 있습니다.

편집기에서 다음 태스크를 수행할 수 있습니다.

작업 조치
코딩 중에 컨텐츠 지원 사용

코딩 중에 CTRL+스페이스바를 누르면 컨텐츠 지원 기능이 호출됩니다. 이는 또한 XPage에 임베드된 SSJS(Server Side JavaScript)에 대해서도 작동합니다.

XPage 소스 편집기의 기능으로서 컨텐츠 지원은 스키마 사용을 통해 구동됩니다. Domino Designer는 현재 Notes 애플리케이션에 따라 동적으로 스키마를 빌드합니다. 스키마에는 각 태그의 각 속성에 대한 도움말 정보가 XPage 런타임의 일부로 포함됩니다.

코딩 중에 하이퍼링크 탐색 사용

하이퍼링크 탐색은 편집기 내의 텍스트를 하이퍼링크로 만들 수 있는 일반 Eclipse 기능을 설명합니다. 해당 링크 위치/디자인 요소를 직접 탐색하려면 텍스트 또는 링크(사용자 정의 제어 이름 포함) 위로 마우스를 이동하고 CTRL을 누르십시오. Eclipse는 하이퍼링크 탐색에 사용 중인 편집기에 피드백을 제공합니다.

예를 들어, 사용자 정의 제어 편집 중에 이 기능을 사용하십시오. CTRL을 누르고 소스 편집기의 사용자 정의 제어 위로 마우스를 이동하면 하이퍼링크 탐색으로 해당 사용자 정의 제어를 직접 탐색할 수 있습니다.

코딩 중에 풍선 도움말 사용

이 기능을 사용하려면 특정 '노드' 위에 마우스 커서를 올려서 자세한 정보를 확보하십시오. 위의 하이퍼링크 탐색처럼 Eclipse 편집기 프레임워크를 사용하여 현재 태그(및 속성)에 대한 설명을 제공할 수 있습니다.

xsp-config를 통해 자신에 대한 설명을 제공하는 모든 태그와 속성에는 XPage 소스 편집기에서 풍선 도움말 기능에 표시할 정보가 있을 수 있습니다.

Domino Designer 환경 설정 탭에서 이 기능의 동작을 제어할 수 있습니다. 이 기능은 기본적으로 작동하며 환경 설정과 연관된 500밀리초의 제한시간이 있습니다. 즉, 커서가 500밀리초를 초과하여 '정지' 상태이면 Eclipse 편집기 프레임워크는 XPage 소스 편집기 풍선 도움말 기능을 호출합니다.

제품 도움말 시스템 호출 컨텍스트 도움말을 열려면 F1을 누르십시오.
기타 편집 태스크 수행 소스 편집기 페이지를 마우스 오른쪽 단추로 클릭하여 편집기에서 수행할 수 있는 기타 조치의 메뉴를 표시할 수 있습니다.
편집기 최대화 최대화 아이콘을 클릭하거나 탭을 두 번 클릭하십시오.
편집기를 원래 크기 및 위치로 복원 복원 아이콘을 클릭하거나 탭을 두 번 클릭하십시오. 이 함수는 편집기를 최대화한 경우에만 사용할 수 있습니다.
키보드 화살표를 사용하여 편집기 크기 조정 탭을 오른쪽 마우스 단추로 클릭하여 크기를 선택한 다음 왼쪽, 오른쪽, 또는 아래를 선택하여 편집기의 모서리를 강조표시하십시오. 해당되는 키보드 화살표를 눌러 편집기를 펼치거나 접으십시오.

팔레트 및 보기

팔레트 및 보기는 디자인 요소에 대해 작업할 도구를 제공합니다.

팔레트

팔레트를 사용하여 제어와 데이터 소스에 대해 작업할 수 있습니다. 다음 팔레트를 사용할 수 있습니다.

제어 팔레트
XPage의 레이아웃을 디자인하고 데이터를 데이터베이스에 입력하여 저장하는 방법을 결정하는 데 사용되는 UI 제어 및 사용자 정의 제어가 포함되어 있습니다. 팔레트에서 XPage로 제어를 끌어서 놓을 수 있습니다.

이 팔레트는 XPage 편집기가 활성인 경우(예: XPage 또는 사용자 정의 제어를 편집 중인 경우)에만 활성입니다. 팔레트에는 코어 제어컨테이너 제어의 두 UI 제어 드로어가 있습니다. 또한 사용자 정의 제어(현재 IBM Domino Designer 애플리케이션에 추가한 경우)의 드로어도 있습니다.

드로어는 각 드로어의 시작과 끝에 있는 위로아래로 화살표를 사용하여 옵션을 통해 스크롤할 수 있는 임베드된 분할창입니다.

팔레트와 해당 드로어에 대해 다음을 수행할 수도 있습니다.
  • 팔레트를 숨기려면 이를 닫으십시오.
  • 팔레트 특성을 변경하려면 오른쪽 마우스 단추로 클릭하여 선택하십시오.
  • 드로어를 펼치거나 접으려면 드로어를 클릭하십시오.
데이터 팔레트
선택한 XPage 또는 XPage 편집기의 제어와 연관된 데이터 소스가 표시됩니다. 데이터 팔레트를 표시하려면 > Eclipse 보기 표시 > 데이터 팔레트를 클릭하십시오.

제어 및 데이터 팔레트에서 끌어서 놓는 경우, 다음 정보, 제한사항 및 가이드라인을 기억하십시오.

  • 보기 패널을 제외한 모든 컨테이너 제어에 제어를 추가할 수 있습니다.
  • 링크 제어의 예외 때문에 코어 제어에 제어를 추가할 수 없습니다. 링크 제어에는 하위가 있을 수 있으므로 이 점에서 컨테이너처럼 동작합니다. 코어 제어에 제어를 추가하려고 시도하면 새 제어가 기존 제어 위의 페이지에 추가됩니다.
  • 소스 탭에서 컨테이너의 시작 또는 종료 태그로 끌거나 시작 또는 종료 태그에 초점을 두고 두 번 클릭하거나 작성 메뉴를 사용하여 제어를 컨테이너의 첫 번째 또는 마지막 하위로 만들 수 있습니다.
  • 제어는 테이블의 셀에만 추가할 수 있으며 행 또는 테이블 컨테이너 자체에는 추가할 수 없습니다.
  • 데이터 테이블의 열에 제어를 추가할 수 있습니다. 소스 탭에 제어를 작성하였으면 데이터 테이블(또는 데이터 테이블 열) 헤더 또는 푸터로 정의된 컨테이너 제어를 추가할 수 있습니다. 제어를 헤더 또는 푸터로 정의하려면 데이터 테이블 또는 열의 xp:this.facets 요소에 추가하십시오.
  • 제어는 탭 패널의 탭에만 추가할 수 있으며 패널 자체에는 추가할 수 없습니다.
  • 소스 탭에서 탭 패널의 종료 태그로 제어를 끌거나 종료 태그에 초점을 두고 두 번 클릭하거나 작성 메뉴를 사용하면 탭 패널의 마지막 탭에 제어가 추가됩니다.
  • 사용자 정의 패널에 대해 정의된 편집 가능한 영역이 있는 경우에만 XPage에 추가된 사용자 정의 제어에 제어를 추가할 수 있습니다. 편집 가능한 영역에 패싯 이름이 있는 경우에는 제어를 하나만 추가할 수 있습니다. 패싯 이름을 제거하면 여러 제어를 추가할 수 있습니다.
  • 다른 사용자 정의 제어에 중첩된 사용자 정의 제어에는 제어를 추가할 수 없습니다.
  • 데이터 팔레트에서 연한으로 데이터 소스를 끄는 경우, 페이지에 삽입되기 전에 소스의 순서를 다시 지정할 수 있습니다. 데이터 팔레트의 맨 위에서 제어 선택 아이콘을 클릭한 다음 바인드된 데이터 선택 제어를 선택하십시오. 화살표 키를 사용하여 데이터 소스를 페이지로 끄십시오.

제어 팔레트에서 제어가 표시되는 순서를 선택할 수 있는 제어 팔레트 프로파일을 작성할 수 있습니다. 서로 간에 전환할 수 있는 다양한 제어 팔레트 레이아웃으로 여러 팔레트 프로파일을 작성할 수 있습니다. 팔레트 프로파일 설정에 액세스하려면 파일-환경 설정-Domino Designer-팔레트로 이동하십시오. 다음 목록은 제어 팔레트 프로파일을 사용하는 데 대한 추가 정보를 제공합니다.

  • 기본적으로 Profile1이라는 초기 프로파일이 작성됩니다. 이 프로파일은 Designer가 처음 실행될 때 팔레트의 현재 상태를 포함합니다. 기존 Designer 팔레트 환경 설정 페이지를 사용하여 팔레트를 수정한 경우 해당 변경사항이 Profile1에 반영됩니다. 팔레트 프로파일 사용자 인터페이스 내에서 Profile1을 이름 변경하거나 삭제할 수 있습니다.
  • 사용자 인터페이스에는 프로파일 목록이 있고 제어 서랍 및 해당 드로어 안의 제어를 표시하는 트리가 있습니다. 트리는 프로파일 목록에서 선택된 프로파일의 팔레트 레이아웃을 표시합니다. 팔레트에서 보고 싶은 제어/드로어는 선택하고 보고 싶지 않은 제어/드로어는 선택 취소할 수 있습니다. 상위 드로어 내에서 개별 제어를 이동할 수도 있지만 드로어 간에 제어를 이동할 수는 없습니다.
  • 드로어를 재정렬할 수도 있습니다. 그러나 이 릴리스의 제어 팔레트에서는 제어의 드로어를 재정렬하는 것을 지원하지 않습니다. 사용자 정의 제어는 트리에 표시되지 않고 항상 제어 팔레트에 존재합니다.
  • 새로 작성을 클릭하여 새 프로파일을 작성하는 경우, 새 프로파일 팔레트 레이아웃은 프로파일 목록에서 현재 선택된 프로파일을 기반으로 합니다. 기본적으로 활성 프로파일은 프로파일 목록에서 선택됩니다. 프로파일을 전환하려면 활성화할 프로파일을 선택하고 "적용" 또는 "확인"을 클릭합니다.
  • 선택된 파일을 기본 프로파일로 복원하려면 기본값 복원을 클릭하십시오. 기본 프로파일을 복원해도 작성하는 프로파일이 삭제되지는 않습니다.
  • 프로파일 목록에서 모든 프로파일을 삭제하면 기본 레이아웃과 일치하는 팔레트 레이아웃으로 Profile1이 다시 작성됩니다.

보기

보기는 Eclipse에서 사용자가 애플리케이션의 다양한 측면을 살펴보고 작업할 수 있는 패널입니다. 다음 보기를 사용할 수 있습니다.

이벤트 보기
XPage용 이벤트와 제어를 작성할 수 있습니다. 이벤트 보기를 사용하여 단순 조치 또는 스크립트를 이벤트에 첨부할 수 있습니다. 이벤트는 쉽게 액세스할 수 있도록 카테고리로 구성됩니다.

스크립트를 작성할 때 서버 측 또는 클라이언트 측 이벤트를 작성할 수 있습니다. AJAX(Asynchronous JavaScript and XML) 기술에 따라 XPage 요소 부분에 대해 부분 업데이트를 수행하는 것을 비롯하여 이벤트가 발생한 후 XPage 업데이트 옵션을 지정할 수 있습니다.

단순한 조치를 작성할 때 인수로 수정할 수 있는 사전에 프로그래밍된 활동을 수행하는 조치를 작성할 수 있습니다. 단순 조치 그룹을 작성할 수도 있습니다.

아웃라인 보기
XPage에 있는 XML 소스 코드의 계층 구조 표현을 제공합니다. 아웃라인 보기에서 개별 노드를 클릭하여 XPage를 통해 탐색하고 특성 보기에서 특성을 업데이트할 수 있습니다. 요소를 끌어서 놓아 섹션을 재배열하고 요소 순서를 변경할 수도 있습니다.
문제점 보기
IBM Domino Designer 자원에 대한 오류, 경고, 기타 정보를 표시합니다. 이 메시지는 Eclipse 작업영역을 빌드할 때 생성됩니다. 예를 들어, 구문 오류가 있는 XPage를 저장하는 경우 문제점 보기에는 해당 오류가 표시됩니다.
특성 보기
XPage의 특성과 제어를 설정할 수 있습니다. 특성 보기는 현재 열려 있는 편집기와 상호작용합니다. 예를 들어, XPage를 디자인할 때 XPage에서 초점을 특정 UI 제어로 옮기면 해당 UI 제어의 특성을 특성 보기에서 사용 가능하게 됩니다.

특성 보기는 IBM Domino Designer 창의 아래에 있으며 클릭하면 옵션 세트가 표시되는 개별 탭을 포함합니다. 각 XPage 및 UI 제어에는 고유 특성 세트가 있으므로 탭과 해당 탭의 옵션은 현재 선택된 항목에 따라 변경됩니다. 예를 들어, XPage 목록을 볼 때 개별 XPage 이름을 클릭하면 특성 보기에는 해당 XPage에 대한 일반 정보(예: XPage의 이름, 작성자 및 작성 날짜)가 표시됩니다. XPage 이름을 두 번 클릭하면 XPage가 IBM Domino Designer XPages 편집기에서 편집 모드로 열리고 특성 보기에 새 탭 세트가 표시됩니다. 이 탭은 편집기에서 현재 선택된 항목(예: 전체 XPage 또는 개별 UI 제어)에 따라 변경됩니다.

특성 제목 표시줄에 있는 단추를 사용하여 보기를 최소화, 최대화, 복원할 수 있습니다. 특성 탭을 마우스 오른쪽 단추로 클릭하여 다음 태스크를 수행할 수 있습니다.
  • 보기를 숨깁니다.
  • 보기를 최소화 및 최대화합니다.
  • 보기를 별도의 창으로 분리합니다.
  • 최소화된 보기 또는 최대화된 보기로 복원합니다.

정보 확보

즉시 정보를 확보하기 위한 자원이 도움말 시스템에 설치되어 있습니다. 기타 자원에는 Information Center, Domino Designer 위키, 다양한 웹 사이트의 기사가 있습니다.

Domino Designer 또는 Notes에서 도움말을 액세스하려면 도움말 > 도움말 목차를 클릭하십시오. 가장 쉬운 액세스는 일반적으로 검색입니다. 몇 가지 팁은 다음과 같습니다.
  • 전체 단어를 입력하십시오. 대소문자는 문제가 되지 않지만 단어는 완전해야 합니다. 예를 들어, createFTIndex 메소드를 찾는 경우 createftindex를 입력할 수 있지만 createftinde는 실패합니다.
  • 검색 결과는 특히 참조 주제인 경우 중복 또는 유사한 제목을 표시할 수 있습니다. 제목 위에 마우스 커서를 놓으면 팝업에 해당 책의 제목이 표시됩니다. 이 정보는 상태 표시줄에도 표시됩니다.
  • 도움말의 한 부분을 자주 사용하는 경우에는 그에 대해 검색 범위를 설정해야 합니다. 참조된 태스크를 확인하십시오.
F1을 클릭하면 오른쪽 분할창에 보충 도움말 시스템이 표시됩니다. 이러한 자료 중 일부는 실제로 요약됩니다. 링크를 사용하거나 페이지 아래에 있는 검색 또는 모든 주제를 클릭하여 전체 문서를 탐색할 수 있습니다.

Notes Domino Information Center(http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp)에서 제품과 함께 설치된 것과 동일한 도움말을 사용할 수 있습니다.

기사, 포럼 및 추가 정보를 보려면 http://www.lotus.com/ldd/ddwiki.nsf에 있는 Domino Designer 위키로 이동하십시오. 이 위키를 게시할 수 있습니다.

도움말 범위 이상을 검색하려면 Google 또는 다른 웹 제품을 사용하십시오. 검색 조회는 domino designer로 시작하십시오. 예를 들어, createFTIndex 메소드에 대한 정보를 확보하려면 검색 조회로 domino designer createftindex를 입력하십시오.

XPage의 실습 소개에 대해서는 이 도움말의 학습서를 사용하십시오. 학습서는 Site Finder Demo라는 고급 템플리트를 사용합니다.

검색 범위 설정

검색 범위는 검색할 도움말 주제를 제한합니다.

이 태스크 정보

기본적으로 검색은 도움말의 모든 주제에 적용됩니다. 다음 단계를 수행하여 검색을 특정 주제로 제한하는 이름 지정된 범위를 작성하십시오.

프로시저

  1. 검색 창에서 검색 범위를 클릭하십시오.
  2. 검색 범위 선택 대화 상자에서 다음 주제만 검색을 선택하고 새로 작성을 클릭하십시오.
  3. 새 검색 목록 대화 상자에서 검색 이름을 입력하십시오.
  4. 검색할 도움말 부분을 선택하십시오. 시작 레벨과 한 레벨 아래에서 주제를 선택할 수 있습니다.
  5. 확인을 클릭하여 범위를 저장하고 새 검색 목록 대화 상자를 닫으십시오.

    다음 주제만 검색이 선택된 경우 범위 목록에 새 검색이 표시됩니다.

    추가 범위를 작성할 수 있습니다.

    선택한 범위를 편집하거나 제거할 수 있습니다.

  6. 확인을 클릭하여 검색 범위 선택 대화 상자를 닫으십시오.
  7. 유효한 범위가 검색 범위 옆에 표시됩니다. 범위를 변경하려면 다음을 수행하십시오.
    1. 검색 범위를 클릭하여 검색 범위 선택 대화 상자를 여십시오.
    2. 다음 주제만 검색을 선택한 다음 범위를 선택하거나 모든 주제 검색을 선택하십시오.
    3. 확인을 클릭하십시오.

예를 들어, Domino Designer 주제만으로 검색 범위를 작성하려면 새 검색 목록 대화 상자에서 범위 이름을 Designer로 지정하고 Lotus Domino Designer로 시작하는 모든 최상위 레벨 항목을 선택하십시오.

내게 필요한 옵션 및 키보드 단축키

Domino Designer는 거동이 불편하거나 제한된 시력을 가진 사용자를 위해 몇 가지 지원 도구를 제공합니다.

IBM Domino Designer는 거동이 불편하거나 제한된 시력을 가진 사용자를 위해 몇 가지 지원 도구를 제공합니다.

특히 Domino Designer는 다음을 제공합니다.

  • Domino Designer에서 다양한 태스크를 탐색하고 수행할 수 있는 키보드 단축키.
  • 키보드를 사용하여 책갈피 표시줄 및 창 탭을 탐색할 수 있는 확장된 단축키. 확장된 단축키를 사용하려면 먼저 사용하도록 설정해야 합니다.

자세한 정보는 제품 도움말 시스템의 Domino Designer Basic 사용자 안내서 및 참조서에서 "내게 필요한 옵션 및 키보드 단축키" 절을 참조하십시오. 이 절에는 태스크 관련 키보드 단축키에 대한 다양한 주제가 있습니다.

전체 제품 도움말의 액세스 가능한 에디션은 IBM Notes 및 Domino Information Center(http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp)에서 찾을 수 있습니다.

또한 Notes 도움말의 "내게 필요한 옵션을 위한 Notes 사용자 정의" 주제에서도 추가 정보를 찾을 수 있습니다. 도움말이 설치되지 않은 경우에도 IBM Developer Domain의 문서 라이브러리(http://www.lotus.com/ldd/doc)로 이동하여 Notes 도움말을 다운로드하거나 볼 수 있습니다.

끝으로, IBM Special Needs 웹 사이트는 http://www.ibm.com/able에서 사용 가능합니다.

학습서

이 절에는 학습서와 학습서 정보가 있습니다.

현재 이 절에서 사용 가능한 학습서는 XPage 사이트 찾기 학습서입니다. 자세한 정보는 이 절의 다른 주제를 참조하십시오.

XPage 사이트 찾기 학습서

이 학습서는 IBM Domino Designer에서 XPage 요소를 사용하여 웹 애플리케이션을 작성할 수 있는 용이성에 대해 설명합니다. 이 학습서를 통해 세 가지의 XPage를 작성하고 미리보기합니다. 데이터를 액세스하여 보고, 다른 페이지를 탐색하며, 동일 페이지를 새로 고치고, 기타 조치를 수행하기 위해 XPages에 제어를 배치합니다. JavaScript를 사용하기도 합니다.

Domino Designer 및 일반 디자인 요소에 익숙하면 도움이 될 수는 있지만 반드시 필요한 것은 아닙니다. 학습 범위를 벗어나는 몇몇 디자인 요소 및 그래픽은 미리 로드되어 있습니다. Eclipse의 새 기능에 대해서는, Domino Designer에서 탐색에서 자세히 설명합니다.

Site Finder Demo라는 데모 애플리케이션은 Domino Designer와 함께 전달된 고급 템플리트입니다. 이 애플리케이션은 많은 웹 사이트에서 가까운 위치를 찾는 도구와 유사합니다. 사용자는 우편번호나 주소를 제공하고 서버는 일치하는 위치를 리턴합니다. 이 학습에서 사용자는 등록할 웹 페이지를 개발하고 사이트 문서를 작성하고 편집하기 위한 다른 페이지도 개발합니다.

편의를 위해 액세스에는 제한을 두지 않습니다. 누구나 문서를 작성하고 편집할 수 있습니다. 이로써 서버를 설정하지 않아도 XPage 기능을 미리볼 수 있습니다. 실제 애플리케이션에서는 ACL(access control list)을 통해 쉽게 수행되는 액세스 제한을 원할 것입니다. 메뉴에서 파일 > 애플리케이션 > 액세스 제어를 클릭하십시오.

데모 애플리케이션의 검색 메커니즘은 정확한 일치만을 기준으로 하는 단순한 메커니즘입니다. 실제 애플리케이션에서는 더 정교한 메커니즘을 원할 것입니다.

이 문서는 IBM Domino, IBM Domino Designer, IBM Notes, IBM iNotes 및 IBM Notes Traveler 제품을 참조합니다.

학습 목적

  • XPage 요소를 포함하는 애플리케이션 설정 및 보기
  • XPage 작성
  • XPage에 제어 추가
  • XPage에 데이터 바인드
  • XPage에 네비게이션 추가
  • 사용자 정의 제어 작성
  • 고급 바인딩 및 스크립팅 사용

소요 시간

이 학습을 완료하는 데 약 90분이 소요됩니다.

샘플 애플리케이션 설정

학습 과정 동안, Site, SiteFinder 및 SiteList의 세 가지 XPage를 작성합니다. 샘플 애플리케이션을 처음 열면, 유사한 이름들이 있는 기존 XPage가 표시됩니다. 이 중 세 가지는 최종 솔루션으로, 이름은 SiteFinal, SiteFinderFinal 및 SiteListFinal입니다. 이 중 두 개는 중간 솔루션이며 이름은 Site1 및 SiteList1입니다.

IBM Domino Designer를 실행하고 다음 단계를 수행하십시오.
  1. 메뉴에서 File > Application > New(Ctrl+N)를 클릭하십시오.
  2. New Application 창에서 다음 단계를 수행하십시오.
    1. 서버 선택은 Local로 두십시오.
    2. 제목(예: Site Finder Demo)을 입력하십시오.
    3. 파일 이름을 승인하거나 수정하십시오(예: SiteFinderDemo.nsf).
    4. 옵션: Encryption을 클릭하십시오. Do not locally encrypt this database를 선택하고 OK를 클릭하십시오.

      이 단계에서는 다른 Notes 사용자가 로컬로 애플리케이션에 액세스할 수 있습니다(예: 누군가에게 메일을 보내는 경우). 일반적으로, 실제 애플리케이션은 보호하기 위해 암호화해야 합니다. 로컬 암호화는 애플리케이션이 서버로의 복제를 통해 공유되는 일이 없도록 합니다.

    5. Create a full text index for searching을 선택하십시오. 나중에 필요합니다.
    6. 템플리트 서버 선택은 Local로 두십시오.
    7. Show advanced templates를 선택하십시오.
    8. 템플리트 목록에서 Site Finder Demo를 선택하십시오.
    9. Inherit future design changes를 선택 해제하십시오.
    New Application 창은 다음과 유사합니다.

    New Application

  3. OK를 클릭하십시오.

    Domino Designer가 새 애플리케이션을 작성하고 해당 요소는 화면 왼쪽의 Applications 아래에 표시됩니다. 요소를 펼쳐서 이 애플리케이션의 디자인을 탐색하십시오.

  4. Code를 펼치고 Agents를 두 번 클릭하십시오. 에이전트 목록에서 Create sample data를 마우스 오른쪽 단추로 클릭하고 Run을 선택하십시오.

    이 에이전트는 애플리케이션을 테스트할 때 사용하는 몇 개의 샘플 레코드를 작성합니다. 대화 상자에 응답하십시오. 모서리에 있는 X를 클릭하여 에이전트 목록을 포함하는 분할창을 닫으십시오.

  5. XPages를 펼치고 SiteFinderFinal(SiteFinder의 최종 솔루션)을 두 번 클릭하십시오.
  6. Design > Preview in Web Browser > Default System Web Browser를 클릭하거나 나열된 브라우저 중 특정 브라우저를 선택하십시오.

    컴퓨터에서 실행 중인 소형 웹 서버는 브라우저를 열고, XPage의 HTML을 생성한 후 서버 이름으로 localhost를 사용하여 브라우저에 페이지를 보냅니다.

    컴퓨터가 localhost를 사용하도록 설정되지 않은 경우 미리보기 URL이 실패합니다. 브라우저를 열고 127.0.0.1 또는 사용자 컴퓨터의 실제 IP 주소(URL)를 사용하십시오(예: http://127.0.0.1/SiteFinderDemo.nsf/SiteFinderFinal.xsp).

  7. Zip code 필드에 값(예: 02108)을 입력하고 Search를 클릭하십시오.

    그러면 서버에 페이지가 제출됩니다. 서버는 페이지의 정보를 처리하고 다른 페이지를 클라이언트에 보냅니다.

  8. 완료되면 브라우저를 닫으십시오.
  9. Domino Designer에서 탭에 있는 X를 클릭하여 XPage 요소를 닫으십시오.

    모양은 다양합니다. 분할창이 두 개 이상의 탭이 있으면 탭에 X가 표시됩니다. 분할창에 탭이 하나만 있는 경우 모서리에 X가 있는 창으로 표시됩니다.

이름에 Final이 있는 XPage를 미리보는 등 자유롭게 애플리케이션을 탐색하십시오. 이들 XPage는 학습을 진행하면서 디자인하는 최종 버전입니다.

XPage 작성

여기서는 기본 XPage 작성 방법을 배웁니다.

양식과 보기를 각각 하나씩 사용하며 이 양식 및 보기를 작성하는 연습 과정은 설명하지 않습니다. Site 양식에는 사이트 정보와 검색 기준을 저장하기 위한 필드가 있고, SiteList 보기는 사이트 및 검색 결과 목록을 표시하는 데 사용됩니다. 해당 목록에 대한 빠른 보기를 보십시오. 양식 및 보기에 대한 문서는 도움말의 Domino Designer Basic 사용자 안내서 및 참조서를 확인하십시오.
  • 양식은 데이터 표시 방법이 아니라 문서에 저장되는 데이터를 정의하기 위해 XPage에서 사용됩니다. 이 정의는 데이터를 구성하고 계산하기 위해 표시 양식에서 숨겨진 필드를 사용하는 것과 유사합니다. Site 양식에는 문서 작성을 위한 데이터 필드와 설명 텍스트가 있습니다. 레이어에서 이들 필드를 다루지 않으므로 사용자는 해당 필드를 볼 수 없습니다.
  • 보기는 문서 콜렉션과 문서의 순서를 정의하기 위해 XPage에서 사용합니다. 대체로 프로그램 방식으로 주소를 지정할 수 있도록 일부 데이터를 색인화하기 위해 보기를 사용하는 것처럼, SiteList 보기는 사용자 데이터 문서에 대한 색인으로 사용됩니다. 이 보기는 사이트 이름별로 정렬된 모든 문서의 내용을 나열합니다. 보기는 문서를 구성하기 위한 훌륭한 방법으로, 여러 개의 보기가 서로 다른 서브세트와 정렬 순서를 보여주는 것이 일반적입니다.

애플리케이션이 펼쳐져 있는지 확인하고 다음 단계를 수행하십시오.

  1. XPage를 두 번 클릭하십시오.

    그러면 가운데 분할창에 XPage 요소 목록이 표시됩니다.

  2. New XPage를 클릭하십시오.
  3. 새 XPage SiteList의 이름을 지정하십시오. (자동으로 .xsp 확장자가 추가됩니다.)

    이름에서 공백을 사용할 수 있지만, 공백을 사용하지 않을 경우 이름이 더 명확합니다.

  4. 확인을 클릭하십시오. 가운데 분할창에 비어 있는 XPage 디자인 요소가 작성됩니다.
  5. 다음 단계를 수행하여 페이지에 헤더 그래픽을 놓으십시오.
    1. Core Controls에서 Image를 선택하여 XPage로 끌어서 놓으십시오. Select Image 창이 표시됩니다.
    2. xpTitlebarLeft_ren.gif를 선택하십시오.

      Select Image 창은 아래 화면 캡처와 유사합니다.

      Select
Image windows

    3. OK를 클릭하십시오.

    화면 캡처에 표시되는 이미지는 사전에 로드됩니다. 목록에 표시되는 각 이미지는 현재 데이터베이스에 있는 자원입니다. Add 단추를 사용하면 추가 이미지를 가져올 수 있습니다. (이미지를 가져올 수 있는 다른 방법도 있습니다.)

    Ok를 클릭하면 이미지가 헤더로 표시됩니다.

  6. 헤더 이미지의 오른쪽에 있는 빈 공간을 클릭하거나 오른쪽 화살표를 눌러서 오른쪽으로 이동하십시오. 공간이 보이지 않으면 해당 방향으로 스크롤해야 합니다. Enter를 누르면 커서가 다음 행으로 이동합니다.
  7. 헤더 텍스트를 입력하십시오.
    1. XPage에서 헤더 아래의 빈 행을 클릭하십시오.
    2. List of Sites을 입력하고 Enter를 누르십시오.
    3. 텍스트 행을 강조표시하십시오.
    4. 아래 분할창에서 Font를 클릭하고 원하는 대로 글꼴을 변경하십시오(예: 굵게 14 포인트 파란색).
    나중에, 형식을 제어하기 위한 대체 방법으로 스타일시트를 추가하여 이 텍스트에 적용할 것입니다.
XPage의 디자인은 아래 화면 캡처와 유사합니다.

SiteList XPage

경험이 있는 웹 개발자는 H1H2와 같은 문서 구성 요소를 사용할 수 있습니다. 디자인 사용자 인터페이스에서는 이 구조를 지원되지 않지만, 소스 사용자 인터페이스를 사용하면 원하는 대로 XML을 입력할 수 있습니다. 페이지를 XML로 표시하고 편집하려면 Source 탭을 클릭하십시오. 학습서로 돌아가려면 Design 탭을 클릭하십시오.

보기 제어 추가

XPage 보기 제어는 정의된 보기의 정보를 표시하기 위해 사용됩니다. 여기에서 작성하는 제어를 사용하여 SiteList 보기의 데이터를 표시할 수 있습니다.

가운데 분할창에 SiteList XPage가 열려 있는지 확인하고 다음 단계를 수행하십시오.
  1. Container Controls에서 View를 선택하여 XPage로 끌어오십시오.
  2. Select Data Source for View 상자에서 다음을 수행하십시오.
    1. Show data fromDomino view로 설정된 상태로 두십시오.
    2. ApplicationCurrent로 설정된 상태로 두십시오.

      Domino 애플리케이션을 선택할 수 있지만 해당 애플리케이션이 런타임 서버에서 사용 가능하지 않으면 보기 제어가 작동하지 않습니다.

    3. View 드롭 다운 목록에서 SiteList를 선택하십시오.
    4. view1을 데이터 소스 이름으로 승인하십시오.

      이 이름은 서버 측 JavaScript 코드에서 사용할 수 있습니다.

    5. 끝에 있는 열 목록에서 SiteName, StreetAddress, City, SiteType을 선택된 채로 두십시오.

    창은 아래 화면 캡처와 유사합니다.

    Select Data Source
for View 창

  3. OK를 클릭하십시오.

    보기를 표시하는 테이블이 나타납니다. 네 열은 보기 열을 나타내고 두 행은 열 제목과 열 내용을 표시합니다. 첫 번째 행에는 보기의 데이터를 탐색할 수 있는 페이저 제어가 있습니다.

  4. 다음과 같이 보기 제어를 조정하십시오.
    1. 열의 크기를 조정하려면 한 열에서 두 행을 모두 선택한 후(첫 번째 행에 있는 셀을 클릭하고 Shift 키를 누른 상태에서 두 번째 셀을 클릭하여 임의의 셀에서 핸들을 끌어오십시오.
    2. 첫 번째 셀을 클릭하고 Shift 키를 누른 상태에서 행의 나머지 셀을 클릭하여 전체 헤더 행을 선택하십시오. Ctrl+B를 누르거나 글꼴 특성을 사용하여 셀이 굵게 되도록 하십시오.
  5. 보기 제어의 첫 번째 열에서 문서를 클럭하여 해당 문서를 열 수 있도록 하십시오.
    1. 끝에서 왼쪽 셀(SiteName)의 내부를 클릭하십시오.
    2. 아래 분할창의 Properties 탭에서 Display를 클릭하십시오.
    3. Show values in this column as links를 선택하십시오.

    페이지는 아래 화면 캡처와 유사합니다.

    보기 제어가 있는 SiteList
XPage

  6. 보기 제어를 편집 페이지에 링크하십시오.
    1. 보기 제어를 클릭하여 전체 보기에 초점을 지정하십시오.
    2. 맨 아래 분할창에 있는 Properties 탭에서 View를 클릭하십시오.
    3. 끝에 있는 At runtime, open selected document using 드롭 다운 목록에서 Site1을 선택하십시오.
  7. 페이지를 저장하고 미리보십시오.
    1. 실제 XPage 자체를 클릭하여 페이지 자체에 초점을 지정하십시오.

      페이지에 초점을 지정하는 다른 방법은 옆의 분할창에서 Outline > Root Document > XPage를 클릭하는 것입니다. 그러면 페이지 자체에 초점이 놓입니다. 아웃라인에서 해당 요소를 클릭하여 페이지의 특정 디자인 요소에 초점을 놓을 수 있습니다.

    2. 페이지를 저장하려면 Ctrl+S를 누르십시오.
    3. esign > Preview in Web Browser > Default System Web Browser 또는 사용자가 선택한 브라우저를 클릭하십시오. 목록에서 문서를 클릭하십시오. Site XPage와 함께 문서가 열립니다. 이 화면에서 문서 변경사항을 작성하고 Submit을 클릭하여 저장하십시오. 페이지를 제출해도 그 페이지에서 나가지 않고 동일한 문서를 계속 편집하고 저장할 수 있습니다.
      변경사항을 저장하고 브라우저를 새로 고치는 몇 가지 방법이 있습니다.
      • 이 학습에서 사용하는 Submit 단추는 데이터 소스를 업데이트하고 페이지를 새로 고칩니다.
      • Button를 사용하여 단순 조치 또는 JavaScript를 onclick 이벤트에 첨부할 수 있습니다. 데이터 소스를 업데이트하고 사용자 경로를 다른 페이지로 재지정하려면 이 이벤트를 사용하십시오.
      • 페이지 이벤트를 통해 단순한 조치 또는 JavaScript를 postSaveDocument 이벤트에 첨부할 수 있습니다. Submit 단추를 페이지에 놓고 postSaveDocument 이벤트에서 사용자 경로를 다른 페이지로 재지정할 수 있습니다.

      XPage는 열어서 비교할 수 있는 SiteList1과 유사합니다.

  8. 브라우저를 닫으십시오.

편집하기 위해 XPage 작성

웹 페이지를 디자인하기 위해 양식을 사용할 수도 있지만, XPage를 사용하면 더 많은 UI 옵션을 사용하고 더 적은 노력으로 모양에 대한 제어를 향상시킬 수 있습니다. 데이터 바인딩을 위한 필드 목록을 제공하는 양식이 있으면 유용합니다. 또한 XPage에 코드를 넣기 보다는 필드 공식으로 계산된 필드를 계산하기 위해 양식을 사용할 수도 있습니다.

여기에서는 페이지에 텍스트를 추가하고 페이지에 제어를 추가하며 스타일시트로 페이지 모양을 조정하고 데이터 소스를 페이지에 바인드하는 방법을 학습합니다. 많은 단계가 있지만 한 번에 하나씩 사용하도록 합니다.

다음을 수행하십시오.

  1. XPage 목록의 시작에서 New XPage를 클릭하십시오. 또는 XPage > New XPage를 마우스 오른쪽 단추로 클릭할 수도 있습니다.
  2. 새 XPage에 Site 이름을 지정하고 OK를 클릭하십시오. XPage와 양식 이름은 같지 않아도 되지만 같으면 작업하기가 편리합니다. XPage와 양식 이름을 같게 하면 이 자습서에서 다루지 않는 자동 작업을 수행할 수 있습니다.
  3. 다음과 같이 페이지에 스타일시트를 추가하십시오.
    1. 끝 분할창에서 Style을 클릭하십시오.
    2. 끝으로 스크롤하여 Add style sheet to page를 클릭하십시오.
    3. Add Style Sheet to Page 대화 상자에서 styles.css를 선택하십시오.
    4. OK를 클릭하십시오.
    CSS 파일은 샘플 애플리케이션에 포함된 스타일시트 디자인 요소입니다.
  4. 다음과 같이 페이지의 제목을 추가하고 스타일링하십시오.
    1. XPage에서 페이지의 제목을 입력하고(예: Site Description) Enter를 누르십시오.
    2. 텍스트를 강조표시하십시오.
    3. 맨 끝의 분할창에서 Style을 클릭하십시오.
    4. styles.css 아래의 목록에서 .title을 클릭하십시오.
    텍스트의 모양은 선택한 스타일에 맞게 변경됩니다.
  5. 다음과 같이 XPage를 Domino 백엔드 데이터 저장소와 연관(바인드)시키십시오.
    1. XPage에서 텍스트 외부를 클릭하십시오. 그러면 초점이 페이지 자체에 놓입니다.
    2. 맨 아래 분할창에서 Properties 아래의 Data를 클릭하십시오.
    3. Add를 클릭한 후 Domino Document를 선택하십시오.

      document1 데이터 소스가 표시됩니다.

    4. 분할창의 옆에서 Form을 찾고 드롭 다운 목록에서 Site를 선택하십시오.

      그러면 XPage가 Site 양식의 데이터 정의와 연관됩니다.

  6. 다음과 같이 데이터 팔레트를 설정하십시오.
    1. 분할창의 맨 아래 옆에서 Data palette 링크를 클릭하십시오. 옆 분할창에 Data 탭이 표시됩니다. 또한 Window > Show Eclipse Views > Data를 클릭하여 데이터 탭을 표시할 수도 있습니다.
    2. 데이터 탭에서 Data source에 대해 document1을 선택하십시오. 데이터 팔레트에 새 데이터 소스가 표시되기 전에 XPage에 초점을 놓아야 할 수도 있습니다.

      데이터 소스의 필드 이름 및 유형이 데이터 소스 이름 아래에 표시됩니다.

    3. Data 탭의 왼쪽 상단 구석에서 Select Controls dialog box 아이콘을 클릭하여 사용 가능하도록 만드십시오.

      Select Controls dialog box의 아이콘은 다음과 같습니다.

  7. 데이터 팔레트의 모든 필드를 선택하고 제목 아래에 있는 XPage로 끌어오십시오.

    Select Data Bound Controls 대화 상자가 열립니다.

  8. 다음과 같이 대화 상자를 채우십시오.
    1. 필드를 포함하려면 모든 선택란을 체크된 채로 두십시오.
    2. 모든 레이블 텍스트를 그대로 두십시오.
    3. Site type을 선택하고 드롭 다운 메뉴를 사용하여 제어 유형을 Combo Box로 변경하십시오.
    4. Amenities의 제어 유형을 List Box로 변경하십시오.
    5. Directions의 제어 유형을 Multiline Edit Box로 변경하십시오.
    6. Add Submit button to generated code를 선택하십시오.
    7. Add messages control to generated code를 체크하십시오.

    대화 상자는 다음과 같습니다.

    Select Data Bound
Controls 대화 상자

  9. OK를 클릭하십시오.

    그러면 첫 번째 열에 레이블이 있고 두 번째 열에 제어가 있는 2열 테이블이 작성됩니다. 두 번째 열에는 유효성 검증 오류 및 Submit 단추를 표시하는 영역도 있습니다.

  10. SiteType 필드에 초점을 두고 다음과 같이 조정하십시오.
    1. 끝 분할창에 있는 Properties에서 Data를 클릭하고 기본값으로 Office를 입력하십시오.
    2. 사이트 유형으로 다른 선택항목을 추가하려면 Properties 다음의 Values를 클릭하십시오. Add Item를 세 번 클릭하십시오. 각 항목의 레이블을 선택하고 Untitled에서 Office, RetailRestaurant으로 변경하십시오.

      저장된 값이 여기에 사용된 경우가 아닌 표시 값과 다르지 않으면 Values에 대해 어떤 것도 입력하지 않아도 됩니다.

  11. Amenities 필드에 초점을 두고 다음과 같이 조정하십시오.
    1. 끝 분할창에 있는 Properties 아래의 List Box를 클릭하고 Allow multiple selections를 선택하십시오.
    2. Properties에서 Values를 클릭하십시오. Add Item를 네 번 클릭하십시오. 각 항목의 레이블을 선택하고 Untitled에서 Cafeteria, Fitness Center, Visitor CenterExecutive Briefing Center로 변경하십시오.
    3. 셀 안에서 레이블 제어(“Amenities:") 밖의 열 1을 클릭하십시오. Properties에서 Table Cell을 클릭하고 Cell vertical alignment에 대해 Top을 선택하십시오.

      셀의 시작 부분에 레이블이 정렬됩니다.

    Amenities에 대한 선택란을 선호하는 경우, 목록 상자를 제거하고 제어 팔레트에서 선택란 그룹을 끌어올 수 있습니다. Properties 아래의 Data를 클릭하고 Bind to 드롭 다운 메뉴에서 Amenities를 선택하여 선택란 그룹을 바인드하십시오. 위의 11단계에서 설명한 것처럼 Values 탭에 값을 입력하십시오.

    CitysearchCity 필드가 둘 다 있는 이유는 실제 사이트 이름과 다른 도시를 검색할 수 있도록 하기 위해서입니다. 예를 들어, 샘플 사이트 중 하나가 Brighton(Boston의 근교)에 있을 때, 검색에 대해서는 Boston에 있다고 합니다. 그러나 국가의 경우, 실제 국가와 검색 국가가 동일한 것으로 간주합니다.

    XPage는 다음과 같습니다.

    사이트 설명 XPage

    이 때, XPage는 비교를 위해 열 수 있는 Site1과 유사해야 합니다.

  12. 페이지를 편집할 수 없을 때 Submit 단추를 포함하는 행이 숨겨지도록 테이블을 조정하십시오. 약간의 JavaScript가 필요합니다.
    1. Submit 단추를 포함하는 테이블 셀(단추가 아니라 셀임)을 클릭하십시오.
    2. 맨 아래 분할창에 있는 Properties에서 Table Cell을 클릭하십시오(아직 선택하지 않은 경우).
    3. Visible 옆에 있는 다이아몬드를 클릭한 후 Compute value를 클릭하십시오. 스크립트 편집기가 열립니다.
    4. 스크립트 편집기의 글로벌 변수 목록에서 document1을 두 번 클릭하고 마침표를 입력하십시오.

      글로벌 변수 document1은 XPage가 표시하는 현재 문서를 나타내는 유형 NotesXspDocument의 오브젝트입니다. 마침표를 입력할 때 해당 오브젝트의 메소드 목록이 표시됩니다.

    5. 메소드 목록에서 끝으로 스크롤하여 isEditable()을 두 번 클릭하십시오.
      문서가 편집 가능하면 true가, 그렇지 않으면 false가 리턴됩니다. 수식은 다음과 같습니다.
      document1.isEditable()
    6. OK를 클릭하십시오.

      스크립트 편집기는 사용자 코드를 저장하면서 닫힙니다.

    이 코드는 리턴 값이 false인 경우 단추를 포함하는 셀을 숨깁니다. 또한 셀이 아닌 단추를 숨길 수도 있습니다.
  13. XPage에서 제어 외부를 클릭하여 페이지에 초점을 두고 Ctrl+S를 눌러 페이지를 저장하십시오.
  14. Design > 웹 브라우저에서 미리보기 > Default System Web Browser를 클릭하십시오(또는 다른 브라우저 선택). 값을 입력하고 Submit을 클릭하여 애플리케이션을 테스트할 수 있습니다. 새 문서가 데이터베이스에 입력되어야 합니다. 문서 목록을 보려면 Notes 클라이언트를 사용하십시오. 완료되면 브라우저를 닫으십시오.

    이 때, XPage는 비교를 위해 열 수 있는 SiteFinal과 유사해야 합니다.

  15. 가운데 분할창의 오른쪽 위에 있는 X를 클릭하여 Site XPage를 닫으십시오.

문서 추가 및 삭제하기 위해 제어 작성

SiteList XPage를 사용하여 애플리케이션에서 문서를 보고 편집할 수 있지만 문서를 작성 및 삭제하기 위한 제어를 추가해야 합니다.

다음을 수행하십시오.
  1. SiteList XPage에서 첫 번째 열(헤더이 아닌 열임) 내부를 클릭하여 초점이 놓이도록 하십시오.
  2. Properties 아래에서 Display를 클릭하십시오.
  3. Check box를 선택하십시오. 그러면 각 행의 앞에 선택란이 놓입니다. 사용자는 상자에 체크 표시를 하여 행을 선택할 수 있습니다.
  4. XPage에서 제목의 끝을 클릭하고 Enter를 눌러서 제목과 보기 제어 사이에 빈 줄을 놓으십시오.
  5. 오른쪽 분할창에 제어 목록에 표시되지 않는 경우에는 Controls 탭을 클릭하거나 Window > Show Eclipse Views > Controls를 클릭하십시오.
  6. Button 제어를 제목 아래에 있는 빈 행으로 끌고 다음을 수행하십시오.
    1. 맨 아래 분할창에 있는 Properties에서 Button을 클릭하십시오(아직 초점이 놓이지 않은 경우).
    2. 레이블을 New Site로 변경하십시오.
    3. Events 탭을 클릭하십시오.
    4. onClick 이벤트가 선택되어 있는지 확인하십시오.
    5. Add Action을 클릭하십시오. Add Simple Action 대화 상자가 열립니다. 카테고리는 All이고 조치는 Open Page여야 합니다. 이와 같지 않으면 조정하십시오.
    6. 열려고 하는 페이지의 이름으로 Site를 선택하십시오.
    7. 대상 문서로 New Document를 선택하십시오.
    대화 상자는 다음과 같습니다.

    단순 조치 추가 대화 상자

  7. OK를 클릭하십시오.
  8. 두 번째 Button 제어를 첫 번째 제어의 옆으로 끌어서 놓고 다음을 수행하십시오.
    1. 맨 아래 분할창에서 Properties 탭을 클릭하고 Button을 클릭하십시오(아직 초점이 놓이지 않은 경우).
    2. 레이블을 Delete Selected로 변경하십시오.
    3. Events 탭을 클릭하십시오.
    4. onClick이 선택되어 있는지 확인하십시오.
    5. Add Action을 클릭하십시오.
    6. 범주로 Document를 선택하십시오.
    7. 조치로 Delete Selected Documents를 선택하십시오.
    8. 보기 이름으로 viewPanel1을 선택하십시오.

      보기 제어의 이름이 아닌 경우 보기 제어를 선택하십시오.

    9. 확정 텍스트로 Do you really want to delete the checked sites?를 입력하십시오.

    대화 상자는 다음과 같습니다.

    Add Simple
Action 대화 상자

  9. OK를 클릭하십시오.
  10. 페이지를 저장하려면 Ctrl+S를 누르십시오.
  11. 설명한 대로 페이지를 미리보십시오.
  12. 가운데 분할창의 오른쪽 위에 있는 X를 클릭하여 SiteList XPage를 닫으십시오.
이 때, XPage는 비교를 위해 열 수 있는 SiteListFinal과 유사해야 합니다.

검색하기 위해 XPage 작성

사용자는 이 페이지를 사용하여 검색 매개변수를 지정하고 결과를 확인합니다. 검색 매개변수는 구/군/시, 시/도, 국가 및 우편번호 값입니다. 사용자는 이 매개변수를 채우고 단추를 클릭할 수 있습니다. 페이지가 새로 고쳐지고 결과가 보기로 표시됩니다. 보기의 검색 특성은 검색 매개변수와 일치하는 문서로 표시를 제한합니다.

다음을 수행하십시오.
  1. XPage 목록의 시작에서 New XPage를 클릭하십시오. 또는 옆 분할창에서 XPage > New XPage를 오른쪽 마우스 단추로 클릭할 수도 있습니다.
  2. 새 XPage에 SiteFinder 이름을 지정하고 OK를 클릭하십시오.
  3. 오른쪽 분할창에 있는 Custom Controls에서 Header 사용자 정의 제어를 XPage로 끌어오십시오.

    이는 SiteList XPage에 놓은 것과 동일한 이미지이지만, 유지보수를 용이하게 하기 위해 사용자 정의 제어에 놓았습니다. 사용자 정의 제어는 보조 양식과 유사합니다.

  4. 다음과 같이 페이지에 스타일시트를 추가하십시오.
    1. 제어가 아니라 실제 페이지를 클릭하여 초점을 해당 페이지에 지정하십시오.
    2. 맨 아래 분할창에 있는 Properties에서 Style을 클릭하십시오.
    3. 끝으로 스크롤하여 Add style sheet to page를 클릭하십시오.
    4. Add Style Sheet to Page 대화 상자에서 styles.css를 선택하십시오.
    5. OK를 클릭하십시오.
  5. 다음과 같이 제목을 추가하십시오.
    1. XPage에서 헤더 다음에 Enter를 누르고 페이지의 제목을 입력한 후(예: Site Finder) 다시 Enter를 누르십시오.
    2. 텍스트를 강조표시하십시오.
    3. 맨 아래 분할창에서 Style을 클릭하십시오(아직 스타일이 표시되지 않은 경우).
    4. styles.css 아래의 목록에서 .title을 클릭하십시오.
    텍스트의 모양은 선택한 스타일에 맞게 변경됩니다.
  6. 제목 텍스트 아래에서 사용자에 대한 지시사항을 입력하고(예: Fill in any or all of these fields and click Search) Enter를 누르십시오.
  7. 다음과 같이 네 개의 행과 두 개의 열이 있는 테이블을 작성하십시오.
    1. 오른쪽 분할창에 있는 Container Controls에서 Table을 XPage의 지시사항 아래로 끌어오십시오.

      Insert Table 대화 상자가 표시됩니다.

    2. Insert Table 대화 상자에서 행 수에 대해 4, 열 수에 대해 2를 입력하십시오.
    3. OK를 클릭하십시오.
    4. 그랩 핸들을 사용하여 테이블 너비를 조정하십시오.
  8. 1열의 셀마다 다음을 수행하십시오.
    1. 오른쪽 분할창에 있는 Core Controls에서 Label을 셀로 끌어오십시오.
    2. 맨 아래 분할창에서 제어 레이블을 City(1행), State(2행), Country(3행) 또는 Zip/Postal code(4행)로 변경하십시오.
  9. 2열의 셀마다 다음을 수행하십시오.
    1. 옆 분할창의 Core Controls에서 Edit Box를 셀로 끌어서 놓으십시오.
    2. 맨 아래 분할창에 있는 Properties에서 Edit Box를 클릭하십시오.
    3. 이름을 searchCity(1행), searchState(2행), searchCountry(3행) 또는 searchZip(4행)으로 변경하십시오.
    4. 맨 아래 분할창에 있는 Properties에서 Data를 클릭하십시오.
    5. Bind data using에 대해 Advanced를 클릭하십시오.
    6. Use 드롭 다운 메뉴에서 Scoped Variable을 선택하십시오.
    7. Parameter 목록 상자에서 Session Scope를 선택하십시오.
    8. 끝으로 스크롤하고 변수 이름을 searchCity(행 1), searchState(행 2), searchCountry(행 3) 또는 searchZip(행 4)으로 입력하십시오.
    이 편집 상자를 범위 지정 변수에 바인딩하면 데이터 저장소가 아닌 JavaScript 코드에서 해당 값에 액세스할 수 있습니다. 세션 변수는 서버에서 사용자 세션의 지속 기간 동안 페이지에 걸쳐 값을 보유합니다.
  10. 다음을 수행하여 페이지를 제출하고 새로 고치기 위한 단추를 작성하십시오.
    1. 옆 분할창에 있는 Core Controls에서 Button을 테이블 아래 행으로 끌어오십시오.
    2. 맨 아래 분할창에서 제어 레이블을 Search로 변경하십시오.
    3. 단추 유형의 드롭 다운 목록에서 Submit을 선택하십시오.
    이 단추를 클릭하면 페이지가 서버에 제출되고 사용자가 입력한 값을 기초로 페이지 내용이 새로 고쳐집니다.
  11. 다음을 수행하여 결과를 가져오기 위해 사용된 조회를 표시하십시오.
    1. XPage의 다음 행에서 Query string: 및 공백을 입력하십시오.
    2. 오른쪽에 있는 Core Controls에서 Computed Field를 페이지로 끌어오십시오.
    3. 맨 아래 분할창에 있는 Properties에서 Font를 클릭하십시오. 색상을 파란색으로 변경하십시오.
    4. 맨 아래 분할창에 있는 Properties에서 Value를 클릭하십시오.
    5. Bind data using에 대해 Advanced를 클릭하십시오.
    6. Use 드롭 다운 메뉴에서 Scoped Variable을 선택하십시오.
    7. Parameter 목록 상자에서 Session Scope를 선택하십시오.
    8. 끝으로 스크롤하고 변수 이름을 queryString으로 입력하십시오.

      변수 이름은 사용자 스스로 선택하는 이름으로 특수한 의미를 갖지 않습니다. 나중에 값을 지정합니다.

    이로서 나중에 계산할 조회를 표시할 수 있습니다. 표시는 생산 애플리케이션에서 필요하지 않지만 테스트에 유용합니다.
  12. 옆 분할창에 있는 Container Controls에서 View를 페이지의 다음 행으로 끌어오십시오.
    1. Show data fromDomino View로 설정된 상태로 두십시오.
    2. ApplicationCurrent로 설정된 상태로 두십시오.
    3. View 드롭 다운 목록에서 SiteList를 선택하십시오.
    4. 데이터 소스 이름으로 view1을 승인하십시오.
    5. 끝에 있는 열 목록에서 SiteName, Phone, StreetAddress, City, State를 제외한 모두를 선택 취소하십시오. 이를 변경하고 표시할 열을 선택할 수 있지만 SiteName은 포함해야 합니다.
    6. OK를 클릭하십시오.
  13. 맨 아래 분할창에 있는 Properties에서 View를 클릭하십시오. At runtime, open selected document using에 대해 Site를 선택하십시오.
  14. 맨 아래 분할창에 있는 Properties에서 Data를 클릭하십시오. 보기가 SiteList로 설정되어 있는지 확인하십시오.
  15. 이제 사용자가 검색 필드에 입력하는 값을 충족하는 문서로 보기를 제한하기 위한 검색 조회를 설정합니다. 다음을 수행하십시오.
    1. 맨 아래 분할창에 있는 Properties에서 All Properties를 클릭하십시오.
    2. 끝으로 스크롤하십시오. Data를 펼친 후 Data의 두 번째 발생을 펼치십시오. Search 특성을 선택하십시오.

      화면은 다음과 같습니다.

      Search 특성

    3. Search 특성 옆에 있는 다이아몬드를 클릭하고 Compute value를 선택하십시오.

      스크립트 편집기가 열립니다.

    4. 스크립트 편집기에서 다음 코드를 입력하십시오. 언어가 서버 측 JavaScript이고 Compute Dynamically가 설정되어 있는지 확인하십시오.
      var tmpArray = new Array("");
      var cTerms = 0;
      if(sessionScope.searchZip != null & sessionScope.searchZip != "") {
      	tmpArray[cTerms++] = "(FIELD SearchZip = \"" + sessionScope.searchZip + "\")";
      }
      if(sessionScope.searchCity != null & sessionScope.searchCity != "") {
      	tmpArray[cTerms++] = "(FIELD SearchCity = \"" + sessionScope.searchCity + "\")";
      }
      if(sessionScope.searchState != null & sessionScope.searchState != "") {
      	tmpArray[cTerms++] = "(FIELD SearchState = \"" + sessionScope.searchState + "\")";
      }
      if(sessionScope.searchCountry != null & sessionScope.searchCountry != "") {
      	tmpArray[cTerms++] = "(FIELD Country = \"" + sessionScope.searchCountry + "\")";
      }
      qstring = tmpArray.join(" AND ").trim();
      sessionScope.queryString = qstring; // this just displays the query
      return qstring // this is what sets the search property

      경험을 하지는 않지만, 이 코드를 함수 양식으로 넣고 스크립트 라이브러리에 배치할 수 있습니다. 스크립트 라이브러리는 단순한 참조로 액세스하는 함수와 페이지에 자원으로 추가됩니다. 이로서 중심에서 유지보수되는 여러 위치에서 코드를 사용할 수 있습니다.

    5. OK를 클릭하십시오.
    이 코드는 편집 상자에 바인드된 세션 범위 변수를 사용하여 사용자가 페이지에 입력하는 값을 가져옵니다. 코드는 searchZip, searchCity, searchStateCountry 필드의 문서 값과 일치하는 조회 문자열을 빌드하고 리턴합니다.

    명확하도록 하기 위해, 검색하는 문서에서와 동일한 필드 이름을 사용하지만 어떤 이름을 사용해도 됩니다.

  16. 사용자가 읽기 모드에서 문서를 열 수 있도록 첫 번째 열을 조정하십시오.
    1. XPage에서 보기의 첫 번째 열 내부를 클릭하십시오.
    2. 맨 아래 분할창에 있는 Properties에서 Display를 클릭하십시오.
    3. Show values in this column as links를 체크하십시오.
    4. Document open mode에 대해 Read-only를 클릭하십시오.

    검색 결과를 보는 웹 사용자는 링크를 따라갈 때 발견하는 문서를 편집할 수 없습니다. 실제 애플리케이션에서는 액세스 제어 목록도 사용합니다.

  17. 변경사항을 저장하고 새 검색 화면을 미리보십시오.
  18. 설명한 대로 페이지를 미리보십시오. 일부 검색을 시도하십시오(예: 우편번호에 대해 02108 또는 33432, 시에 대해 Boca Raton 또는 Boston, 주에 대해 MA, 국가에 대해 France).
  19. 가운데 분할창의 오른쪽 위에 있는 X를 클릭하여 SiteFinder XPage를 닫으십시오.
이 때, XPage는 비교를 위해 열 수 있는 SiteFinderFinal과 유사해야 합니다.

여기에 표시된 프로세스는 검색 함수를 구성하기 위한 최적의 방법은 아니지만 하나의 방법입니다. 대신 Search 단추에서 JavaScript 코드의 데이터 소스 검색 특성을 지정할 수도 있습니다. 그러면 여러 검색 유형에 대해 여러 개의 검색 단추가 있는 페이지에서 조회 정보의 여러 소스를 더 쉽게 가질 수 있습니다.

다른 제어는 사용자 결과를 더 좋게 형식화하는 데 사용할 수 있습니다. 예를 들어, Data Table은 검색 결과를 레이아웃하는 방법에 더 많은 제어를 부여하여, 종종 보기 대신 사용됩니다. 그러나 View 제어는 아주 단순하게 사용할 수 있습니다.

애플리케이션 관리

IBM Domino Designer는 애플리케이션 프로젝트를 개발하는 동안 작업 및 관련 파일을 관리하기 위한 기능을 제공합니다.

현재 기본 기능인 소스 제어 인에이블먼트를 사용하면 NSF 기반 디자인 요소를 소스 제어 저장소에 저장하고 Domino Designer를 사용하여 공통 소스 제어 오퍼레이션을 수행할 수 있습니다. 이 기능은 소스 제어가 관리하는 온디스크 프로젝트와 Domino Designer가 추적하는 가상 NSF 기반 프로젝트 간의 연관을 작성할 수 있게 하여 이를 수행합니다.

이 기능은 SVN 소스 제어 클라이언트를 Domino Designer와 가능한 한 원활하게 통합할 수 있도록 하고 Domino Designer가 가능한 한 "최고의 소스 제어 시스템"으로 유지되도록 하기 위해 제공됩니다.

이 문서는 IBM Domino, IBM Domino Designer, IBM Notes, IBM iNotes 및 IBM Notes Traveler 제품을 참조합니다.

Domino Designer의 소스 제어

소스 제어 오퍼레이션은 Domino Designer로 수행할 수 있습니다. 이 섹션은 이 기능을 사용 가능하게 하는 소스 제어 인에이블먼트 기능을 사용하는 데 필요한 모든 정보를 제공합니다.

소스 제어 인에이블먼트

소스 제어 인에이블먼트 기능은 NSF 기반 디자인 요소를 소스 제어 저장소에 저장하고 Domino Designer를 사용하여 공통 소스 제어 오퍼레이션을 수행하도록 도입되었습니다.

Eclipse 기반(예: 오픈 소스) 소스 제어 클라이언트(예: SVN 및 CCRC)는 실제 파일에서 작업합니다. 이로써 이들은 NSF 기반 디자인 요소에 대한 가상 파일 맵핑을 포함하는 Designer 프로젝트와 직접 작업할 수 없습니다. 이들은 디스크에 저장된 프로젝트하고만 작업합니다. 이로써 가상 NSF 프로젝트를 미러링하는 디스크의 프로젝트에서 작업하여 소스 제어 오퍼레이션을 수행해야 합니다.

이 문제의 해결을 돕기 위해 Domino Designer 소스 제어 인에이블먼트 기능이 도입되어 NSF 기반 디자인 요소를 소스 제어 저장소에 저장하고 Domino Designer를 사용하여 공통 소스 제어 오퍼레이션을 수행할 수 있습니다. 이 기능은 소스 제어가 관리하는 온디스크 프로젝트와 Designer가 추적하는 가상 NSF 기반 프로젝트 간의 연관을 작성할 수 있게 하여 이를 수행합니다. 이 단계는 사실 기본 소스 제어 오퍼레이션을 수행하기 전에 완료되어야 하는 전제조건입니다.

끝으로 이 기능은 SVN 소스 제어 클라이언트를 Domino Designer와 가능한 한 원활하게 통합할 수 있도록 하고 Domino Designer가 가능한 한 "최고의 소스 제어 시스템"으로 유지되도록 합니다.

전제조건: 소스 제어 인에이블먼트와 함께 사용되는 버전 소스 제어 시스템 설정

이 주제에서는 소스 제어 인에이블먼트 기능을 사용할 수 있도록 버전 소스 제어 시스템을 먼저 설정하는 방법을 설명합니다.

이 태스크 정보

오픈 소스 소스 제어 시스템(예: Subversion®)을 사용하면 나중에 프로젝트가 저장되는 저장소에서 프로젝트를 공유할 수 있습니다. 저장소는 파일 서버와 유사하지만 파일 시스템의 사본을 저장할 뿐 아니라 해당 이전 상태 및 변경 히스토리도 저장합니다. Subversion®과 같은 소스 제어 시스템은 네트워크 연결을 사용하여 저장소에 액세스합니다. 따라서 공유 파일에서 작업할 수 있고 다른 개발자가 수행한 모든 변경사항을 감시할 수 있습니다.

Domino Designer에서 소스 제어 인에이블먼트 기능을 사용하기 전에 SVN/Clearcase(소프트웨어 버전화 및 개정판 제어 시스템)의 소스 제어 플러그인이 설치되었거나 Designer에서 동적으로 프로비저닝되어야 합니다. 지침으로서, 다음 단계는 소스 제어 인에이블먼트 기능의 사용을 시작하기 위해 완료되어야 합니다.

프로시저

  1. 오픈 소스 버전 소스 제어 시스템을 설치 및 구성하십시오.
  2. Subversion 서버에 저장소를 작성하십시오(Subversion 소프트웨어 문서 참조).
  3. 새로 작성 - 저장소 위치 - 새 저장소 패널을 클릭하여 새 저장소를 소스 제어 서버에 등록하고 서버 URL 및 사용자 신임 정보를 입력하십시오.

다음에 수행할 작업

오픈 소스 버전 소스 제어 시스템을 아직 설치하지 않은 경우 다음 단계를 사용하여 Subversion® 시스템을 설치할 수 있습니다.
참고: 참고: 이 버전은 Eclipse 3.3 이상을 필요로 하며 이전 버전의 Eclipse IDE를 지원하지 않습니다.
  • Eclipse 플러그인 설치를 가능하게 하는 환경 설정을 선택하여 애플리케이션 - 설치 메뉴를 사용 가능하게 하십시오.
  • http://www.eclipse.org/subversive/downloads.php 사이트에 나열된 SVN Eclipse 플러그인에 대한 업데이트 사이트를 설치하십시오. Helios 릴리스를 사용하십시오. 하위 버전 플러그인을 설치하려면 GEF(3.4 이상)가 필요하므로 위에 표시된 GEF 플러그인을 설치하라는 메시지가 표시됩니다.
  • 이 플러그인이 설치되었으면 업데이트 사이트(http://community.polarion.com/projects/subversive/download/eclipse/2.0/helios-site/)에서 관련 SVN 커넥터를 설치하십시오. 이 프로세스 중에 각 커넥터 플러그인에 대한 메시지가 표시될 수 있습니다.
  • 이 두 업데이트 사이트가 올바로 설치되었는지 확인하려면 SVN 저장소 탐색 퍼스펙티브를 Domino Designer에서 열 수 있는지 확인한 후 Subversion 서버에 연결하십시오.
참고: 위에서 설명한 예제 설치 시나리오는 다음 플러그인 버전을 사용하여 테스트되었습니다.
  • Subversive 플러그인: Subversive-incubation-0.7.9.I20100512-1900.zip
  • Subversive 커넥터: Subversive-connectors-2.2.2.I20100512-1900.zip
최신 버전 또는 보다 최근의 버전보다 이러한 버전을 사용하는 것이 좋습니다. 하지만 다른 버전을 사용하려는 경우 예제의 버전과 유사하게 일치하는 버전을 사용하는 것이 좋습니다.
참고: 기본적으로 Subversive 소스 제어 플러그인(및 잠재적으로 기타 소스 제어 제품 플러그인)은 대부분의 최신 GEF(Graphical Editing Framework) 버전을 설치합니다. 3.6.2보다 나중의 GEF 버전이 설치된 경우 XPage는 편집을 위해 Designer에서 열릴 때 올바르게 표시되지 않습니다.

이 문제점을 해결하기 위해 Subversive 플러그인(또는 적용 가능한 기타 소스 제어 제품 플러그인)을 설치할 때 버전 3.6.2 이후 버전이 아닌 특정 버전의 GEF(Graphical Editing Framework)를 설치하십시오. 버전 3.6.2를 권장합니다. 이를 수행하려면 설치 프로시저에서 업데이트 사이트당 최신 버전 기능만 표시 선택란을 선택 취소하십시오. .../gef/updates/releases/ 기능을 펼치고 GEF SDK 3.6.2를 선택하십시오.

소스 제어 인에이블먼트 기능 설정

다음 주제는 일상적인 소스 제어 오퍼레이션의 일부로서 Domino Designer 소스 제어 인에이블먼트 기능의 사용을 시작하기 위해 완료되어야 하는 초기 설정 태스크에 대한 정보를 제공합니다.

  • 온디스크 프로젝트와 NSF 간의 연관 작성
  • NSF를 기존 온디스크 프로젝트와 연계
  • 초기 동기화 오퍼레이션의 방향 설정
  • NSF를 새 온디스크 프로젝트와 연계
  • 소스 제어 인에이블먼트 기능 설정 환경 설정

시작하기 전에: 온디스크 프로젝트와 NSF 간의 연관 작성

소스 제어 인에이블먼트 기능은 소스 제어가 관리하는 기존 온디스크 프로젝트와 Designer가 사용하는 가상 NSF 기반 프로젝트 간의 연관을 작성하도록 합니다.

Eclipse 기반(예: 오픈 소스) 소스 제어 클라이언트(예: SVN 및 CCRC)는 실제 파일에서 작업합니다. 이로써 이들은 NSF 기반 디자인 요소에 대한 가상 파일 맵핑을 포함하는 Designer 프로젝트와 직접 작업할 수 없습니다. 이들은 디스크에 (온디스크 프로젝트로) 저장된 프로젝트하고만 작업합니다. 이로써 가상 NSF 프로젝트를 미러링하는 디스크의 프로젝트를 사용하여 소스 제어 오퍼레이션을 수행해야 합니다.

이를 달성하기 위해 소스 제어 인에이블먼트 기능은 소스 제어가 관리하는 기존 온디스크 프로젝트와 Designer가 사용하는 가상 NSF 기반 프로젝트 간의 연관을 작성하도록 합니다. 이 단계는 기본 소스 제어 오퍼레이션을 수행하기 전에 완료되어야 하는 전제조건입니다.

다음은 이 연관을 작성하기 위해 완료되어야 하는 일반 단계입니다.

  • NSF 애플리케이션을 Designer에서 열었거나 작성했는지 확인하십시오.
  • 애플리케이션 네비게이터에서 온디스크 프로젝트와 연계할 NSF를 선택하고 마우스 오른쪽 단추 클릭 컨텍스트 메뉴에서 팀 개발 - 기존 온디스크 프로젝트와 연계를 선택하십시오. Domino Designer 소스 제어 인에이블먼트 기능은 가상 NSF 프로젝트와 온디스크 프로젝트 간의 연관 또는 맵핑을 작성하여 작동합니다. 이 메뉴 항목을 선택하면 이 연관이 완료됩니다.

NSF를 기존 온디스크 프로젝트와 연계

소스 제어 인에이블먼트 기능은 소스 제어가 관리하는 기존 온디스크 프로젝트와 Designer가 사용하는 가상 NSF 기반 프로젝트 간의 연관을 작성하도록 합니다.

이 태스크 정보

다음 단계를 사용하여 Designer 애플리케이션(.NSF) - 온디스크 프로젝트(ODP) 연관 또는 맵핑을 작성하십시오. 이것은 온디스크 프로젝트와 연계... 패널에서 수행됩니다.

프로시저
  1. Domino Designer에서 NSF 애플리케이션을 열거나 작성하십시오.
  2. 작성된 NSF를 선택하고 메뉴에서 팀 개발 - 기존 온디스크 프로젝트와 연관...을 선택하십시오. 그러면 온디스크 프로젝트와 연계 패널이 열립니다. 이 패널에서 기존 온디스크 프로젝트를 선택하고 연관이 수행된 후 발생할 초기 동기화 오퍼레이션의 방향을 선택합니다. 기본 설정은 "온디스크 프로젝트에서 nsf_filename으로 가져오기"입니다.
  3. 동기화 설정에 대한 자세한 내용은 초기 동기화 오퍼레이션의 방향 설정 주제를 참조하십시오.

초기 동기화 오퍼레이션의 방향 설정

이 주제에서는 NSF와 온디스크 프로젝트 간의 연관을 작성할 때 발생하는 초기 동기화 오퍼레이션에 대해 사용 가능한 방향을 설명합니다.

NSF와 온디스크 프로젝트 간의 연관을 작성하는 동안 초기 동기화 오퍼레이션의 방향을 선택해야 합니다. 이것은 다음 중 하나입니다.

  • nsf 파일 이름에서 선택된 온디스크 프로젝트로 내보내기 -- 초기 방향이 이것으로 설정되면 초기 동기화 오퍼레이션은 가상 NSF 프로젝트의 모든 컨텐츠를 적절한 형식으로 온디스크 프로젝트에 내보내며 이를 소스 제어 저장소에 커미트할 수 있습니다.
  • 선택된 온디스크 프로젝트에서 nsf 파일 이름으로 가져오기 -- 초기 방향이 이것으로 설정되면 초기 동기화 오퍼레이션은 NSF 프로젝트를 디스크 기반 프로젝트의 컨텐츠로 업데이트합니다.

NSF를 새 온디스크 프로젝트와 연계

소스 제어 인에이블먼트 기능은 새 온디스크 프로젝트와 NSF 간의 연관을 작성할 수 있게 합니다.

이 태스크 정보

NSF를 온디스크 프로젝트와 연계하려면 메뉴에서 파일 - 팀 개발 - 이 애플리케이션에 대한 소스 제어 설정을 선택하십시오.

Domino Designer 애플리케이션 네비게이터에서 이를 수행하려면 소스 제어에 추가할 애플리케이션의 애플리케이션 헤더(아이콘)를 마우스 오른쪽 단추로 클릭하고 팀 개발 - 이 애플리케이션에 대한 소스 제어 설정을 선택하십시오. 그러면 새 온디스크 프로젝트가 작성되고 기본적으로 공개 NSF 프로젝트의 모든 컨텐츠가 여기로 내보내집니다.

소스 제어 인에이블먼트 기능을 공통 소스 제어 태스크에 사용하는 방법에 대한 추가 정보는 소스 제어 인에이블먼트 기능으로 공통 소스 제어 태스크 완료 주제를 참조하십시오.

소스 제어 인에이블먼트 기능 설정 환경 설정

이 주제에서는 소스 제어 인에이블먼트 기능 오퍼레이션을 사용자 정의하기 위해 설정할 수 있는 환경 설정을 설명합니다.

소스 제어 인에이블먼트 기능 오퍼레이션을 추가로 사용자 정의하기 위해 파일-환경 설정-Designer-소스 제어를 클릭하여 환경 설정을 설정할 수 있습니다. 이러한 환경 설정은 이 기능을 사용하는 동안 기능에 적용됩니다. 이러한 환경 설정은 다음을 포함합니다.

  • 소스 제어 오퍼레이션에 대해 바이너리 DXL 사용 -- 표시되는 디자인 요소의 유형에 따라 디자인 요소를 디스크에 표시하는 방식에는 두 가지가 있습니다. 전체 세부사항은 "디자인 요소를 디스크에 표시하는 방식 선택" 절을 참조하십시오.
  • 수정 시 (NSF에서 디스크로) 디자인 요소의 자동 내보내기 사용 -- 이 환경 설정은 사용자가 NSF 내에서 디자인 요소를 수정한 후 이를 내재적으로 내보낼 수 있도록 하기 위해 제공됩니다. 이 환경 설정이 선택되면 NSF 프로젝트에 대한 편집(예: 양식, XPage 등의 작성/업데이트/삭제)은 온디스크 프로젝트에 내재적으로 반영되며 이를 소스 제어 저장소에 커미트할 수 있습니다.
  • 수정 시 (NSF에서 디스크로) 디자인 요소의 자동 가져오기 사용 -- 이 환경 설정은 디자인 파일이 디스크 프로젝트에서 수정되었을 때 이를 디스크에서 NSF로 내재적으로 가져올 수 있도록 하기 위해 제공됩니다. 이를 위해서는 자동 빌드도 ON으로 설정되어야 합니다. 이 환경 설정을 설정한 후 사용자가 저장소의 컨텐츠로 디스크 프로젝트를 업데이트하면 변경사항이 NSF 내에 자동으로 반영됩니다.
  • 설정 마법사에서 도우미 패널 표시 - 이 환경 설정은 팀 개발 - 이 애플리케이션에 대한 소스 제어 설정 패널이 호출되었을 때 소스 제어 인에이블먼트 기능을 설명하는 도우미 패널을 표시합니다.

사용하도록 설정하려면 환경 설정을 선택(체크)하고 사용하지 않도록 설정하려면 선택 취소하십시오.

참고: 자동 동기화 환경 설정은 기본적으로 사용하도록 설정됩니다.

디자인 요소를 디스크에 표시하는 방식 선택

이 주제에서는 디자인 요소를 디스크에 표시하는 방식을 설명합니다.

표시되는 디자인 요소의 유형에 따라 디자인 요소를 디스크에 표시하는 방식은 두 가지가 있습니다.

  • 디스크에서 두 파일(컨텐츠 및 메타데이터)의 세트로 -- XPage, 사용자 정의 제어, 스타일시트, 파일, 테마, 컴포지트 애플리케이션, 연결 특성 및 JS/SSJS/LS 스크립트 라이브러리는 디스크에서 컨텐츠 파일 및 메타데이터 파일의 두 파일 세트로 표시됩니다. 컨텐츠 파일은 편집기에 표시되는 실제 파일 컨텐츠이고 메타데이터 파일은 디자인 요소의 나머지 속성을 표시하기 위해 컨텐츠 외의 DXL을 포함합니다.
  • 디자인 요소의 DXL을 포함하는 파일로 -- 양식, 보기, 페이지, Java 스크립트 라이브러리, 에이전트, 공유 수행 등의 나머지 디자인 요소는 디자인 요소의 DXL을 포함하는 파일로 표시됩니다. 내보낸 컨텐츠의 DXL에 대한 "바이너리" 형식을 사용하기 위해 환경 설정이 제공됩니다. 자세한 정보는 소스 제어 인에이블먼트 기능 설정 환경 설정 주제를 참조하십시오.

소스 제어 인에이블먼트 기능으로 공통 소스 제어 태스크 완료

Domino Designer 소스 제어 인에이블먼트 기능으로 작업하는 방법에 대한 개념을 제공하기 위해 일반 워크플로우의 기본 단계가 제공됩니다.

사용 가능한 여러 소스 제어 시스템과 관련된 기본 소스 제어 오퍼레이션의 모든 세부사항을 설명하는 것은 이 문서의 범위에 속하지 않으므로 Domino Designer 소스 제어 인에이블먼트 기능으로 작업하는 방법에 대한 개념을 제공하기 위해 일반 워크플로우의 기본 단계가 제공됩니다.

일반 프로세스는 다음과 같을 수 있습니다.

  • 적절한 소스 제어 플러그인이 Designer에 설치됩니다.
  • Designer에서 데이터베이스를 여십시오.
  • 데이터베이스(NSF)를 온디스크 프로젝트(ODP)와 연계하고 NSF에서 ODP로 내보내십시오.
  • 커미트 - Designer ODP에서 소스 제어 저장소로 전송합니다.
  • 체크아웃 - 다른 시스템에서 소스 제어 저장소의 ODP를 가져옵니다.
  • 데이터베이스(NSF)를 ODP와 연계하고 ODP에서 .NSF로 가져오십시오.
  • .NSF 및/또는 ODP를 수정하고 두 항목을 (내재적으로 또는 명시적으로) 동기화하십시오.
  • 변경사항을 소스 제어 저장소에 커미트하십시오.
  • 소스 제어 저장소에서 ODP로 변경사항을 가져오기 위해 업데이트하십시오.
  • 업데이트된 ODP를 .NSF와 동기화하십시오.

더 구체적인 예로서 공통 도구는 다음 기본 절차를 사용합니다.

  • 프로젝트를 공유하여 소스 제어에 추가합니다.
  • 체크아웃하여 소스 제어로부터 로컬 온디스크 프로젝트를 작성합니다.
  • 커미트하여 로컬 변경사항을 소스 제어에 전송합니다.
  • 업데이트하여 소스로부터 변경사항을 수신합니다.
참고: 참고: 시스템이 기본 오퍼레이션을 처리하는 방식에 대한 자세한 내용은 소스 제어 소프트웨어 문서를 참조하십시오.

다음 주제에서는 Domino Designer 소스 제어 인에이블먼트 기능을 사용하여 방금 언급한 공통 소스 제어 태스크의 일부를 완료하는 더 자세한 예제를 제공합니다.

소스 제어에 기존 Domino Designer 애플리케이션 추가

이 주제에서는 소스 제어에 기존 Domino Designer 애플리케이션을 추가하는 방법을 설명합니다.

이 태스크 정보

새 애플리케이션을 시작했고 사용자의 시스템에서 로컬로 애플리케이션 작업을 시작했다고 가정합니다. 그리고 애플리케이션 일부를 동료에게 위임해야 한다는 것을 발견합니다. 기존 애플리케이션을 사용자의 소스 제어 시스템에 체크인하여 이를 수행하기로 합니다.

이 태스크는 기존 NSF 애플리케이션을 새 온디스크 프로젝트와 연관시켜 Domino Designer 소스 제어 인에이블먼트 기능을 사용하여 수행됩니다. 이 태스크의 수행 방법에 대한 단계는 NSF를 새 온디스크 프로젝트와 연계 주제를 참조하십시오.

소스 제어에서 애플리케이션 가져오기

이 주제에서는 소스 제어에서 애플리케이션을 가져오는 방법을 설명합니다.

이 태스크 정보

빌드 중인 새 애플리케이션에 대해 동료를 도와야 한다고 가정합니다. 애플리케이션이 원래 개발자에 의해 소스 제어에 이미 체크인되었지만 이제 사용자가 직접 작업을 시작하려면 애플리케이션을 가져와야 합니다.

다음 일반 단계에 따라 이를 수행할 수 있습니다.
  • Eclipse 네비게이터 보기에서 소스 제어 시스템의 명령을 사용하여 애플리케이션을 로컬 시스템에 복사하십시오.
  • 온디스크 프로젝트를 새 NSF와 연계하십시오.

    또는

  • 온디스크 프로젝트를 기존 NSF와 연계하십시오.

이러한 태스크의 완료에 대한 자세한 정보는 이 섹션의 추가 주제를 참조하십시오.

온디스크 프로젝트를 새 NSF와 연계

이 주제에서는 온디스크 프로젝트를 새 NSF와 연계하는 방법을 설명합니다.

이 태스크 정보

빌드 중인 새 애플리케이션에 대해 동료를 도와야 한다고 가정합니다. 애플리케이션이 원래 개발자에 의해 소스 제어에 이미 체크인되었지만 이제 당신이 직접 작업을 시작하기 위해 애플리케이션을 가져와야 합니다.

그 방법 중 하나는 온디스크 프로젝트를 새 NSF와 연계하는 것입니다. 다음 단계에 따라 이를 수행할 수 있습니다.

프로시저
  1. 온디스크 프로젝트를 새 NSF와 연계하려면 새로 작성된 온디스크 프로젝트를 마우스 오른쪽 단추로 클릭하고 팀 개발 - 새 NSF와 연계...를 선택하십시오. 그러면 새 NSF와 연계... 대화 상자가 나타나서 애플리케이션의 이름 및 작성될 위치를 묻습니다.
  2. 위치가 로컬 서버이면 찾아보기 단추를 사용하여 로컬 파일 시스템 디렉토리를 여십시오.
  3. 위치가 원격 서버이면 선택 가능한 폴더가 나열된 대화 상자와 함께 찾아보기 단추가 나타납니다.
  4. 기본적으로 NSF와 온디스크 프로젝트는 자동으로 동기화가 유지됩니다.
결과

온디스크 프로젝트를 기존 NSF와 연계

이 주제에서는 온디스크 프로젝트를 기존 NSF와 연계하는 방법을 설명합니다.

이 태스크 정보

빌드 중인 새 애플리케이션에 대해 동료를 도와야 한다고 가정합니다. 애플리케이션이 원래 개발자에 의해 소스 제어에 이미 체크인되었지만 이제 당신이 직접 작업을 시작하기 위해 애플리케이션을 풀다운해야 합니다.

그 방법 중 하나는 온디스크 프로젝트를 기존 NSF와 연계하는 것입니다. 다음 단계에 따라 이를 수행할 수 있습니다.

프로시저
  1. 온디스크 프로젝트를 기존 NSF와 연계하려면 새로 작성된 온디스크 프로젝트를 마우스 오른쪽 단추로 클릭하고 팀 개발 - 기존 NSF와 연계...를 선택하십시오. 그러면 기존 NSF와 연계... 대화 상자가 나타납니다.
  2. 온디스크 프로젝트와 연계할 기존 NSF를 선택하고 초기 동기화 오퍼레이션의 방향을 선택하십시오.
결과

기존 NSF를 온디스크 프로젝트와 연계 예제

이 주제에서는 기존 NSF를 온디스크 프로젝트와 연계하는 예제를 제공합니다.

동료가 이메일로 전송한 애플리케이션의 이전 사본을 보고 있다고 가정합니다. 이 애플리케이션은 이후에 소스 제어에 게시되었으며 현재 이에 대한 작업이 요청되었습니다. 이 경우, "실제" 버전을 가져와서 이메일로 전송된 버전을 대체해야 합니다.

이 절차는 온디스크 프로젝트를 기존 NSF와 연계 주제와 동일하지만 연계 조치를 NSF에서 가져오고 선택항목이 온디스크 프로젝트라는 점에서 다릅니다. NSF와 연계하는 온디스크 프로젝트는 소스 제어 오퍼레이션에 사용되는 프로젝트가 됩니다. 이 태스크의 수행 방법에 대한 단계는 NSF를 기존 온디스크 프로젝트와 연계 주제를 참조하십시오.

파일 동기화 충돌 처리

이 주제에서는 소스 제어 기능과의 파일 동기화 충돌을 처리하는 방법을 설명합니다.

이 태스크 정보

소스 제어에서 파일 작업을 할 때 파일 동기화 충돌 오류가 발생할 수 있습니다. 이 오류가 발생하면 충돌 중인 파일이 포함된 목록 상자가 있는 동기화 충돌 대화 상자 메시지가 나타납니다. 하나 이상의 파일을 선택하고 여러 버전의 파일을 비교하도록 선택할 수 있습니다. 올바른 버전을 판별한 후에는 사용할 버전을 선택할 수 있습니다.

동기화 충돌 대화상자는 3개의 열이 있는 보기를 표시합니다. 3개의 열은 파일 이름, 마지막으로 수정된(NSF) 날짜 및 마지막으로 수정된(온디스크) 날짜입니다. 비교 단추를 사용하여 NSF 및 온디스크 버전의 요소를 DXL 버전으로 나란히 표시하는 대화 상자를 불러올 수 있습니다. 두 버전의 차이점이 강조표시되어 있습니다.

충돌하는 2개의 파일이 있는 예제에서 다음 단계가 사용됩니다. 이 경우 NSF와 온디스크 프로젝트 간의 동기화 충돌이 발생했으며 2개의 파일이 동기화 충돌 패널에 나열되어 있습니다.

프로시저
  1. 원하는 경우 파일을 선택하고 비교 단추를 클릭하십시오. 이 조치를 통해 각 파일의 컨텐츠를 표시하는 비교 대화 상자가 표시되며 차이점이 강조표시된 상태로 표시됩니다.
  2. 사용할 파일의 버전을 결정한 다음 NSF 버전 사용 단추 또는 온디스크 프로젝트 버전 사용 단추를 누르십시오. NSF 버전 사용 옵션은 온디스크 버전을 겹쳐쓰며 온디스크 프로젝트 버전 사용 옵션은 NSF 버전을 겹쳐씁니다. 이 오퍼레이션을 독립적으로 수행할 수 있습니다.
  3. 파일을 지정하지 않고 닫기 단추를 클릭하면 해당 파일이 다음 동기화 충돌이 트리거될 때 목록에 표시됩니다.
결과

수동으로 NSF와 로컬 소스 제어 프로젝트 동기화

이 주제에서는 수동으로 NSF와 로컬 소스 제어 프로젝트를 동기화하는 방법을 설명합니다.

이 태스크 정보

수동으로 NSF와 로컬 소스 제어 온디스크 프로젝트를 동기화해야 할 필요가 있을 수 있습니다. 예를 들어, 문제가 있거나 환경 설정 패널에서 자동 동기화를 설정 해제한 경우 이를 수행해야 할 수 있습니다.

이 경우 컨텍스트 메뉴 또는 기본 메뉴에서 팀 개발-온디스크 프로젝트와 동기화를 선택하십시오.

소스 제어에서 연관 제거

이 주제에서는 소스 제어에서 NSF/프로젝트 연관을 제거하는 방법을 설명합니다.

이 태스크 정보

NSF와 로컬 소스 제어 온디스크 프로젝트 간에 작성한 연관을 제거해야 할 필요가 있을 수 있습니다.

이 경우 컨텍스트 메뉴 또는 기본 메뉴에서 팀 개발-소스 제어 연관 제거를 선택하십시오.

XPage 애플리케이션 디자인

IBM Domino Designer는 XPage를 제어 및 기타 아티팩트로 채우고 XPage를 데이터 저장소와 연관시킬 수단을 제공합니다.

XPage 작성 및 열기와 같은 일반 탐색에 대해서는 Domino Designer에서 탐색의 내용을 참조하십시오.

Designer는 XPage에 대한 작업을 위해 다음 옵션을 제공합니다.

  • 시각적 모드에서 작업하려면 디자인 탭을 클릭하십시오.
  • XML을 직접 편집하려면 소스 탭을 클릭하십시오.

이 문서는 IBM Domino, IBM Domino Designer, IBM Notes, IBM iNotes 및 IBM Notes Traveler 제품을 참조합니다.

XPage 미리보기 및 실행

XPage는 Domino 서버 및 Notes 클라이언트 환경에서 실행됩니다. Domino Designer에서는 두 환경 모두에서 XPage를 미리볼 수 있습니다.

Domino 서버의 애플리케이션에 있는 XPage에는 다음과 같이 액세스할 수 있습니다.
  • 브라우저에서 http://server/application.nsf/xpage.xsp 형식의 URL을 통해
  • Notes 클라이언트에서 notes://server/application.nsf/xpage.xsp 형식의 URL을 통해

Notes 클라이언트의 애플리케이션에 있는 XPage에는 클라이언트에서 notes:///application.nsf/xpage.xsp?OpenXPage 형식의 URL을 통해 액세스할 수 있습니다.

또한 실행 시 XPage를 열도록 애플리케이션을 설정할 수도 있습니다.

XPage 미리보기

Domino 서버 또는 Notes 클라이언트 환경에서 XPage를 미리볼 수 있습니다.

시작하기 전에

웹 미리보기의 경우 우선 애플리케이션의 액세스 제어 목록(ACL)을 조정해야 합니다. 네비게이터에서 마우스 오른쪽 단추로 애플리케이션을 클릭하고 애플리케이션 > 액세스 제어를 선택하십시오. 익명에 항목을 추가하고 적절한 액세스 레벨을 설정하십시오(최소한 문서를 작성할 수 있는 작성자).
참고: 또한 웹 미리보기를 성공적으로 수행하려면 HTTP 태스크가 Domino 서버에서 실행 중인지 확인하십시오.

프로시저

  1. XPage를 마우스 오른쪽 단추로 클릭하고 Notes에서 미리보기 또는 웹 브라우저에서 미리보기를 선택하십시오. 또는 XPage에 초점을 두고 메뉴에서 디자인 > Notes에서 미리보기 또는 디자인 > 웹 브라우저에서 미리보기를 클릭할 수 있습니다.

    또는 XPage에 초점을 두고 도구 모음에서 Notes에서 미리보기 또는 웹 브라우저에서 미리보기 아이콘을 클릭할 수 있습니다.

  2. 웹 브라우저에서 미리보기의 경우, 브라우저 유형을 선택하십시오.

결과

Notes 미리보기는 필요한 경우 Notes 클라이언트를 시작한 다음 클라이언트에서 XPage를 엽니다. 클라이언트는 XPage의 요청을 처리합니다.

웹 미리보기는 Domino 로컬 미리보기 서버를 시작한 다음 브라우저에서 XPage를 엽니다. 로컬 미리보기 서버는 XPage의 요청을 처리합니다.

웹에서 XPage 미리보기는 전체 애플리케이션 컨텍스트에서 XPage를 실행하는 것과 다를 수 있습니다. 또한 결과는 미리볼 대상이 로컬 애플리케이션인지 또는 원격 애플리케이션인지에 따라서도 다를 수 있습니다. 로컬 애플리케이션 미리보기는 항상 액세스 제어에 대해 익명을 사용하며, 로컬 미리보기 서버에는 프로덕션 서버의 일부 고급 기능이 없습니다. 그러나 로컬 미리보기의 경우 익명으로 서명하고 서버 미리보기의 경우 현재 ID로 서명하여 스크립트 미리보기를 실행하고 문서가 작성되며, 애플리케이션에서 현실적인 보기를 제공합니다.

애플리케이션 실행에 대해 XPage 열기

애플리케이션 실행에 대해 XPage를 열 수 있습니다.

프로시저

  1. 두 번 클릭하거나 애플리케이션 네비게이터에서 애플리케이션 특성을 여십시오. 애플리케이션의 특성 페이지가 열립니다.
  2. 실행 탭을 클릭하십시오.
  3. Notes 클라이언트의 경우, 지정된 XPage 열기(표준 클라이언트)를 선택하고 XPage를 선택하십시오.
  4. 웹 브라우저의 경우, 지정된 XPage 열기를 선택하고 XPage를 선택하십시오. 또는 동일한 XPage를 Notes에 대해 열려면 Notes 실행 옵션 사용을 선택하십시오.
  5. 애플리케이션 특성을 저장하십시오.

결과

사용자가 애플리케이션을 실행하면 XPage가 즉시 열립니다.

웹 브라우저 사용자는 URL(예: http://server/application.nsf/xpage.xsp)을 적용하여 XPage를 실행할 수 있습니다.

다른 XPage 열기

XPage에서 사용자는 탐색 규칙, 단순 조치, XSPContext 메소드 및 URL 열기를 통해 다른 XPage를 열 수 있습니다.

탐색 규칙

각 XPage에는 navigationRule 요소의 배열인 navigationRules 특성이 있습니다. 탐색 규칙은 서버에게 제출 또는 취소 유형의 단추를 통해 제출된 페이지를 처리한 후 어느 페이지에서 클라이언트로 리턴할 것인지 서버에게 알려줍니다. button - 단추의 내용을 참조하십시오. 각 탐색 규칙에는 다음과 같은 속성이 있습니다.
속성
outcome 업데이트가 정상인 경우 xsp-success입니다.
  업데이트 실패 시 xsp-failure입니다.
redirect true는 페이지의 마지막 상태로 복원을 의미
  false(기본값)은 정리 페이지 열기를 의미합니다.
viewId <규칙 없음>은 동일한 페이지 열기를 의미합니다.
  $$PreviousPage는 제출된 페이지 이전에 마지막으로 열린 페이지 열기를 의미합니다.
  $$HomePage는 실행 페이지 열기를 의미합니다.
  page.xsp는 지정된 페이지 열기를 의미합니다.
예를 들면, 다음과 같습니다.
<xp:this.navigationRules>
	<xp:navigationRule
		outcome="xsp-success" viewId="$$PreviousPage">
	</xp:navigationRule>
	<xp:navigationRule
		outcome="xsp-failure" viewId="/errpage.xsp">
	</xp:navigationRule>
</xp:this.navigationRules>

디자인 모드에서 제어에 속하지 않는 부분을 클릭하고 XPage 탭을 클릭한 후 다음 페이지 옵션을 찾으십시오.

단순 조치 openPage

페이지 열기(IBM Domino Designer XPage 참조서 참조) 단순 조치는 활성화될 때 페이지를 즉시 엽니다. 예를 들면, 다음과 같습니다.
<xp:button value="Open page 2" id="button4">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
		<xp:this.action>
			<xp:openPage name="/xpage2.xsp"></xp:openPage>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

재지정을 위한 XSPContext 메소드

redirectToPage(IBM Domino Designer XPage 참조서 참조), redirectToPrevious(IBM Domino Designer XPage 참조서 참조)redirectToHome(IBM Domino Designer XPage 참조서 참조) 메소드는 활성화될 때 페이지를 즉시 엽니다. 예를 들면, 다음과 같습니다.
<xp:button value="Open page 2" id="button4">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete">
		<xp:this.action>
			<![CDATA[#{javascript:context.redirectToPage("xpage2.xsp")}]]>
		</xp:this.action>
	</xp:eventHandler>
</xp:button>

URL 열기

URL을 서버로 보내서 페이지를 열 수 있습니다. 예를 들어, 브라우저의 주소 창에 다음을 지정할 수 있습니다.
http://myserver/foo.nsf/xpage1.xsp

XPage가 아닌 디자인 요소에서는 수식에 @URLOpen을 사용할 수 있습니다. 다음 수식은 양식 조치에 대한 것이며 Notes 클라이언트에서 로컬로 XPage를 엽니다.

@URLOpen("notes:///foo.nsf/xpage1.xsp?OpenXpage")

보기 대신 XPage 열기

웹 액세스만을 위해서는 보기 대신 XPage를 열 수 있습니다.

프로시저

  1. 두 번 클릭하거나 애플리케이션 네비게이터에서 보기를 여십시오.
  2. 보기 특성을 열고 고급 탭을 클릭하십시오.
  3. 웹 액세스 > 대신 XPage 표시의 경우, XPage를 선택하십시오.
  4. 보기를 저장하십시오.

결과

사용자가 보기를 선택하면 XPage가 열립니다.

XPage 서명

XPages는 XPage 디자인 요소를 저장할 때와 해당 구현(즉, 클래스) 파일을 생성할 때 현재 Domino Designer 사용자의 ID로 서명합니다.

이 태스크 정보

XPage 서명은 런타임 시 로드 여부를 결정하므로, 해당 메소드 및 조작에 대해 제한을 사용하거나 제한 없이 실행할 수 있는지 여부를 결정합니다. 제한을 사용하여 실행하면 파일 또는 네트워크 I/O와 같은 한층 일반적인 접근방식의 특정 기능이 제외됩니다. 제한 없이 실행하면 XPage 구현 언어의 지원되는 모든 기능을 사용할 수 있습니다(Domino Designer Basic 사용자 안내서 및 참조서 > 애플리케이션 디자인 > 애플리케이션에 자동화 추가에서 "제한된 LotusScript 및 Java 에이전트 조작" 주제 참조).

서버 액세스 권한과 같이, 제한된/제한되지 않는 메소드를 실행하기 위한 권한이 서버 문서 보안 탭의 프로그래밍 제한 섹션에서 특정 서명자 또는 그룹에 지정됩니다(Domino Administrator 도움말 > 보안 > Notes 사용자, 인터넷 사용자 및 Domino 서버에 대한 서버 액세스 > Domino 서버에 대한 액세스 사용자 정의에서 "서버에서 실행되는 에이전트 및 XPages 제어" 주제 참조).

XPage가 호출될 때(에이전트에 대해), Domino는 서버 문서에서 XPage 서명자의 서버 보안 권한을 확인하고, 인증된 웹 사용자의 액세스 권한도 확인합니다. XPage의 컴포넌트(예: 포함된 XPage, 사용자 정의 제어, JSF 확장자 또는 서버 JavaScript 라이브러리)에 대해, Domino는 각 컴포넌트 서명자의 서버 액세스 권한을 확인하고 표시된 경우 XPage 세션이 제한을 가지고만 실행되도록 다운그레이드합니다. (Domino에 대해 설정된 경우 NoExternalApps notes.ini 변수에 동일한 효과가 있습니다.) 런타임 시, XPages에 서명할 수 있는 서버 권한이 없는 DDE 사용자의 서명은 브라우저에 HTTP 403 오류를 발생합니다.

Notes 클라이언트에서 XPage 사용

IBM Notes 리치 클라이언트에서 XPages 애플리케이션을 실행할 수 있습니다.

Notes 클라이언트에서 XPage 지원의 주요 장점은 웹용으로 개발한 애플리케이션을 로컬에서 복제하여 이를 Notes 클라이언트에서 오프라인에서 실행할 수 있다는 점입니다. 이렇게 하면 해당 애플리케이션을 클라이언트용으로 다시 개발할 필요가 없습니다. XPage 애플리케이션 개발 모델의 모든 이점은 Notes 클라이언트로 확장하여 적용할 수 있습니다. 임베드된 브라우저에서는 이러한 애플리케이션이 웹 애플리케이션과 비슷하게 표시되고 작동하지만 Notes 클라이언트에서는 다른 방식으로 작동합니다.

  • Notes에서 애플리케이션이 렌더링되는 방법에 영향을 주도록 Notes 클라이언트에 특정한 로직을 작성할 수 있습니다. 예를 들어, 토론 애플리케이션에서 웹 렌더링은 페이지의 모서리에 "사용자 이름 환영" 메시지와 "내 프로파일" 링크를 포함합니다. 환영 메시지는 Notes 클라이언트에 표시되지 않습니다. 토론 애플리케이션의 로직에서 이를 제거합니다. 또한 애플리케이션의 XPages 특성을 수정하여 Notes 클라이언트 또는 브라우저에서 애플리케이션을 실행할 때 사용할 테마를 다르게 지정할 수도 있습니다.
  • Notes 클라이언트에서 실행 중인 애플리케이션의 사용자는 파일 > 저장을 사용하여 수정사항을 XPage에 보존할 수 있습니다. enableModifiedFlag 특성을 사용하여 XPage가 변경되었을 때 변경사항을 저장할 것인지를 사용자에게 프롬프트할 수 있습니다.
  • Notes 클라이언트에서 인증된 사용자는 동일한 신임 정보를 사용하여 XPage 애플리케이션 또는 컴포넌트에 액세스할 수 있습니다. 따라서 임베드된 브라우저에서 기존 웹 애플리케이션을 실행하는 경우와 마찬가지로 웹 로그인 대화 상자가 사용자에게 프롬프트되지 않습니다.
  • XPages 디자인 요소(활성 컨텐츠)의 코드가 보호된 조치(예: 워크스테이션 파일을 읽고 쓰는 조치, 시스템 특성을 읽고 쓰는 조치 등)를 실행하지 못하도록 XPages는 실행 제어 목록(ECL)을 사용하여 사용자를 보호된 조치를 수행하려는 코드의 서명자로 허용하고 해당 액세스를 관리합니다.
  • 페이지는 Notes 클라이언트에서 책갈피를 지정할 수 있습니다.

XPage를 독립형 애플리케이션으로 빌드할 수 있으며, 또한 컴포지트 애플리케이션에서 실행하고 컴포넌트 매개변수 및 이벤트 모델을 수신/공개할 수 있는 Domino Designer의 XPage 컴포넌트를 빌드할 수도 있습니다. XPages 컴포넌트는 PIM 컴포넌트와 같은 클라이언트의 다른 컴포넌트와 상호작용할 수 있습니다.

XPage 애플리케이션은 Domino 서버에 있을 수 있습니다. "Notes 클라이언트에서 열 때" 실행 옵션을 "지정된 XPage 열기(표준 클라이언트)"로 설정한 경우, 애플리케이션이 Domino 서버에 있는지 또는 로컬 Notes 클라이언트에 있는지에 관계없이 해당 XPage는 클라이언트에서 렌더링됩니다. 클라이언트에서의 XPage 작동은 동일합니다.

XPages 도구 모음 사용

Notes 클라이언트의 XPages 애플리케이션에는 임베드된 브라우저에서 XPage에 초점을 둘 때마다 표시되는 고유 도구 모음이 있습니다.

이 태스크 정보
도구 모음에는 다른 그룹의 단추들이 있습니다.
  • 탐색 단추를 사용하면 페이지의 앞 페이지나 뒷 페이지로 이동하고, 현재 조치를 중지하고, 현재 페이지를 새로 고치며, 원래 페이지로 돌아갈 수 있습니다. 새로 고침 단추에는 개인용 데이터 지우기 옵션이 있습니다. 이 조치를 실행하면 임베디드 브라우저 캐시가 삭제됩니다.
  • 인쇄 단추를 사용하면 XPage의 인쇄 설정을 지정하고 XPage를 인쇄할 수 있습니다.
  • Domino Designer가 설치된 경우, 페이지 소스 보기 단추를 클릭하여 HTML 소스를 보거나 브라우저 구성 보기 단추를 클릭하여 임베드된 브라우저 설정을 볼 수 있습니다.

XPages 보안

XPages 애플리케이션에 대해 보안이 제공됩니다.

IBM Notes 클라이언트에서 실행 중인 XPages 애플리케이션은 사용자 워크스테이션에서 실행될 수 있는 코드(일반적으로 "활성 컨텐츠"라고 함)가 들어 있는 많은 디자인 요소를 포함할 수 있습니다(예: 데이터베이스 또는 임베드된 Java 코드가 있는 JavaScript에 액세스). 활성 컨텐츠가 보호된 조치(예: 워크스테이션 파일을 읽고 쓰는 조치, 시스템 특성 및 네트워크 조작을 읽고 쓰는 조치 등)를 실행하지 못하도록 XPages는 실행 제어 목록(ECL)을 사용하여 사용자를 보호된 조치를 수행하려는 코드의 서명자로 허용하고 해당 액세스를 관리합니다.

ECL은 코드 서명자가 주어진 워크스테이션에서 코드를 실행할 수 있도록 허용할 것인지 여부를 지정하고 코드에 있는 여러 워크스테이션 기능에 대한 액세스(예: 현재 데이터베이스 또는 다른 데이터베이스에 대한 액세스)를 정의합니다. XPage 애플리케이션 내의 활성 컨텐츠 예로는 JavaScript에 임베드된 Java 코드(서버 측), 서버 측 스크립트 라이브러리 및 Java 클래스와 데이터베이스로 가져온 JAR가 있습니다.

XPages 애플리케이션의 모든 디자인 요소에는 작성자의 서명이 있습니다. XPages 애플리케이션에 하나 이상의 서명자가 있는 경우 보호된 조작이 실행되기 전에 모든 서명자의 신뢰성이 확인되어야 합니다.

XPage 애플리케이션에 대한 ECL 보안 액세스 옵션은 사용자 보안 대화 상자의 다른 사용자가 하는 일 아래에 있는 워크스테이션 사용 탭에서 설정됩니다(파일 > 보안 > 사용자 보안).

활성 컨텐츠 필터링을 사용한 보안

활성 컨텐츠 필터링(ACF) 보안 기능은 실행 중에 XPage 입력 제어에 유입된 악성 코드에 대한 보호막이 되기도 합니다.

활성 컨텐츠 필터링은 입력/출력 텍스트 제어에서 악성 활성 컨텐츠(스크립트, 태그)를 제거하는 데 사용할 수 있습니다. ACF 엔진은 런타임 시 필터링을 수행하는 라이브러리로 사용됩니다. 특정 XPage 제어(편집 상자, 다중 행 편집 상자, 서식있는 텍스트, 숨겨진 입력)에 초점을 두면 기본사항 아래의 모든 특성 탭에 htmlFilter htmlFilterIn의 두 특성이 표시됩니다.

htmlFilter 특성은 제어가 클라이언트에 데이터를 보낼 때 사용할 ACF 엔진을 정의하고 htmlFilterIn 특성은 제어가 클라이언트에서 텍스트를 받을 때 사용할 엔진을 정의합니다. 이러한 두 특성을 변경하여 텍스트 필드에 대해 ACF를 사용하거나 사용하지 않을 수 있습니다.

XPages에 대해 사용 가능한 다음 네 개의 ACF 엔진이 있습니다.
  • acf
  • striptags
  • identity
  • empty

“acf” 엔진은 HTML 텍스트를 구문 분석하고 구성 파일(acf-config.xml)에 기반하여 안전하지 못한 구조를 필터링하여 추출합니다. “striptags” 엔진은 정규식 'replaceAll("\\<.*?>","")'을 사용하여 모든 태그를 제거합니다. "identity" 필터는 원래 문자열을 리턴합니다. “empty” 엔진은 모든 항목을 제거하고 빈 문자열을 리턴합니다.

“acf” 엔진은 구성 파일을 사용하여 구성할 수 있습니다. 클라이언트 측의 경우 이 파일은 일반적으로 C:\Program Files\IBM\Lotus\Notes\Data\properties에 있습니다. acf-config.xml.sample 예제는 이 폴더에 있습니다.

ACF를 구성하려면 먼저 위의 폴더에서 xsp.properties 파일을 찾아서 다음 행을 추가해야 합니다. xsp.htmlfilter.acf.config=acf-config.xml. 이는 acf-config.xml 파일이 “acf” 엔진을 구성하는 데 사용됨을 의미합니다(그렇지 않은 경우 기본 규칙이 사용됨). 다음은 acf-config.xml 파일 컨텐츠의 예입니다.
<?xml version="1.0"?>
<config>
       <filter-chain>
          <filter name='base' class='com.ibm.trl.acf.impl.html.basefilter.BaseFilter'
                  verbose-output='false' use-annotation='false' />
       </filter-chain>

			<filter-rule id='base'>
           <target scope=''>
             <!-- C14N rules -->
             <rule c14n='true' all='true' />

              <!-- Base rules -->
             <rule attribute='on' attribute-criterion='starts-with'
                 action='remove-attribute-value' />
             <rule attribute='${' attribute-criterion='starts-with'
                 action='remove-attribute-value' />
             <rule attribute='href' value='javascript:' value-criterion='contains'
                  action='remove-attribute-value' />
             <rule attribute='style' action='remove-attribute-value' />

              <rule tag='script' action='remove-tag' />
              <rule tag='style' action='remove-tag' />
              <rule tag='link' attribute='rel' value='stylesheet'
                   value-criterion='contains' action='remove-tag' />
            </target>
        </filter-rule>
</config>
이전 예입니다.
  • <rule attribute='on' attribute-criterion='starts-with' action='remove-attribute-value' />"on"으로 시작하는 속성을 제거합니다.
  • <rule attribute='href' value='javascript:' value-criterion='contains' action='remove-attribute-value' /> 'javascript:' 키워드를 포함하는 값이 있는 모든 'href' 속성을 제거합니다.
  • <rule tag='style' action='remove-tag' />는 모든 "script" 태그를 제거합니다.
  • <rule tag='link' attribute='rel' value='stylesheet' value-criterion='contains' action='remove-tag' />"rel" 속성 값이 "stylesheet""link" 태그를 제거합니다.

실행 제어 목록에 대한 자세한 정보는 Domino Administrator 도움말을 참조하십시오.

XPages에 변경사항을 저장할 것인지를 사용자에게 프롬프트

수정된 필드가 있는 페이지를 닫는 조치가 필요할 때 XPage 애플리케이션에서 사용자에게 프롬프트하는 방법을 제어할 수 있습니다.

이 태스크 정보
XPage 또는 사용자 정의 제어에 편집 가능한 제어가 있는 경우, 수정된 제어에 대해 두 가지 특성을 설정하여 애플리케이션에서 사용자에게 프롬프트하는 방법을 지정할 수 있습니다. 이러한 특성은 XPage 또는 사용자 정의 레벨과 코어 제어 레벨이라는 두 가지 레벨로 되어 있습니다.
  • 레벨 1: XPage 또는 사용자 정의 제어
    • enableModifiedFlag(부울 - 기본 내재 값은 false) - XPage 또는 사용자 정의 제어에서 사용자가 코어 제어에 변경사항을 저장하도록 프롬프트할지 여부 및 Notes 클라이언트에서 XPage 또는 제어가 수정된 경우 Notes 클라이언트의 파일 > 저장 옵션을 사용할 것인지 여부를 지정합니다. 외부 브라우저에서 실행 중인 애플리케이션은 Notes의 파일 > 저장 메커니즘을 사용할 수 없으므로 사용자에게는 프롬프트 대화 상자만 표시됩니다.
    • modifiedMessage(문자열) – 프롬프트 대화 상자에서 표시할 사용자 정의 메시지입니다.
  • 레벨 2: 코어 제어
    • disableModifiedFlag(부울 - 기본 내재 값은 true임) – 코어 제어에 변경사항을 저장하도록 프롬프트할 것인지를 지정합니다.
enableModifiedFlag 특성에는 주어진 XPage 또는 사용자 정의 제어에 대한 수정 알림을 사용하거나 사용하지 않는 경우에 절대적인 우선순위가 있습니다. 이 특성 값을 true로 설정하는 경우 코어 제어 disableModifiedFlag 특성 값을 명시적으로 true로 설정하지 않는 한 XPage 또는 사용자 정의 제어에 있는 모든 지원 코어 제어에 대한 변경사항을 사용자에게 알립니다. XPage 또는 사용자 정의 제어에 대해 enableModifiedFlag를 설정하지 않거나 해당 값을 명시적으로 flase로 설정하고 하나 이상의 코어 제어 disableModifiedFlag 특성 값을 false로 설정한 경우, enableModifiedFlag 특성의 우선순위가 높으므로 변경사항을 사용자에게 알리지 않습니다.
다음 코어 제어가 이 기능을 지원합니다.
  • 편집 상자
  • 다중선 편집 상자
  • 목록 상자
  • 콤보 상자
  • 선택란
  • 단일 선택 단추
  • 파일 업로드
  • 날짜 시간 선택 도구
  • 서식있는 텍스트 편집기

현재 페이지에 대한 수정사항을 저장하지 않도록 선택한 경우 요청된 조치(예: 페이지를 닫거나 브라우저의 해당 페이지에서 탐색)를 실행할 수 있습니다. 수정사항을 저장하도록 선택한 경우 페이지를 저장하기 전에 관련 필드의 유효성을 검증합니다. 유효성 검증은 클라이언트에서 먼저 실행되고 그 다음에 서버에서 실행됩니다. 현재 페이지 필드의 클라이언트 측 유효성 검증이 성공적으로 완료되어야 서버 측 유효성 검증을 실행할 수 있습니다. 서버 측 유효성 검증이 실패하면 오류가 발생한 필드를 포함하는 현재 페이지가 표시되고 필드 내용을 수정할 수 있습니다. 서버 측 유효성 검증이 성공하면 요청된 조치를 실행할 수 있습니다.

Domino HTTP 서버의 Notes에서 XPages 실행

성능 개선을 위해 Notes 클라이언트에서 실행되는 서버 기반 XPages 애플리케이션을 Domino HTTP 서버에서 대신 실행할 수 있습니다.

기본적으로 Notes 클라이언트에서 실행 중인 서버 기반 XPages 애플리케이션은 해당 지점에서 Notes 프로토콜을 사용하여 서버와 클라이언트 간의 일련의 데이터 전송을 통해 실행됩니다. 대신에 이러한 애플리케이션이 HTTP 프로토콜을 사용하여 Domino 서버에서 실행되도록 지정할 수 있습니다.

Notes 기능은 원시 XPages 모드에서 실행될 때와 동일하게 작동합니다. 예를 들면 컨텍스트 메뉴(예: 파일 > 저장, 파일 > 복제, 파일 > 열기), "불량" 문서 저장, 클라이언트 측 JavaScript 등이 동일하게 작동합니다. 한 가지 예외는 컴포지트 애플리케이션이 서버에서 실행될 때 클라이언트 특성 브로커 기능을 사용할 수 없다는 것입니다.

설계자 요구사항
애플리케이션 특성실행 탭에서 지정된 XPage(표준 클라이언트) 열기가 유효한 경우 Domino 서버에서 직접 서버 기반 XPages 애플리케이션 실행을 선택하고 애플리케이션을 저장하십시오. 또한 애플리케이션의 특성 상자를 통해 Notes에서 이 특성을 적용할 수도 있습니다.
또는 Notes notes.ini 파일에 다음 행을 삽입하고 Notes를 다시 시작하여 모든 애플리케이션에 대해 서버 실행을 사용할 수 있습니다.
XPagesRunRemoteAppsOnServer=1
Notes 런타임 요구사항
Notes 클라이언트는 XPages 애플리케이션이 있는 서버의 HTTP 계정을 포함해야 합니다. Notes 계정을 작성하거나 보려면 파일 > 환경 설정 > 계정을 클릭하십시오. 문서는 Notes 도움말의 "Notes 환경 설정에서 계정 작성 및 편집"을 참조하십시오.

계정은 Domino 서버에서 설정하고 Notes 클라이언트로 프로비저닝할 수 있습니다.

서버 기반 XPages 애플리케이션이 Notes 클라이언트에서 실행되면 XPages 프로세서는 애플리케이션이 있는 서버의 HTTP 계정을 검색하여 해당 애플리케이션을 로드합니다.

Notes 계정 프레임워크 및 기본 XULRunner 브라우저는 인증을 위해 웹 서버에 사용자 신임 정보를 자동으로 전달합니다. 사용자가 이름 및 비밀번호를 입력하도록 프롬프트되면, Notes 구성이 올바르게 설정되지 않습니다(예를 들면 SSO가 잘못됨). 이는 Notes 도구 모음의 Notes 브라우저 주소 위젯에서 애플리케이션의 URL을 입력하여 별도로 확인할 수 있습니다.

일치하는 HTTP 계정이 없는 경우 익명 액세스가 허용되지 않으면 사용자의 신임 정보에 대해 인증 확인됩니다. 그러나 다음 notes.ini 변수를 사용하여 HTTP 계정이 필수로 존재하도록 만들 수 있습니다.
XPagesRunOnServerRequireAccount=1
일치하는 계정이 필요하지만 찾을 수 없거나 계정 정보가 올바르지 않은 경우, 사용자는 애플리케이션 창을 닫거나 로컬 Notes 웹 컨테이너를 사용하여 애플리케이션 실행으로 되돌리도록 프롬프트됩니다.
다음 notes.ini 변수는 서버의 Notes에서 XPages 실행을 사용 안함으로 설정합니다.
XPagesRunOnServerDisable=1
성능 배경
Notes 클라이언트에서 실행되지만 원격 Domino 서버에 상주하는 XPages 애플리케이션은 특정 성능 문제에 직면합니다. 이는 주로 Notes 클라이언트에서 XPages 애플리케이션을 실행할 때 많은 네트워크 트랜잭션을 수행해야 하기 때문입니다. XPages Notes 애플리케이션은 로컬 Notes XPD 웹 컨테이너에서 실행되므로 원격 서버에서 네트워크를 통해 실행할 Notes 클라이언트로 모든 XPages Java 클래스(XPages 및 사용자 정의 제어)를 복사해야 한다는 것을 이해하는 것이 중요합니다. 마찬가지로 실제 데이터뿐만 아니라 모든 페이지 자원(CSS, JavaScript, GIF 등)도 원격 서버에서 페치해야 합니다. 그러나 XPages 애플리케이션이 다른 Notes 디자인 아티팩트를 이용할 경우(예를 들면 computeWithForm 기능 사용) 임의로 양식, 보조 양식 및 공유 필드와 같은 대형 디자인 요소도 원격으로 페치해야 합니다. 이는 고지연 네트워크에서 특히 애플리케이션이 주로 웹에 대해 설계되고 Notes 클라이언트에 대해 최적화되지 않은 경우에 중요한 성능 영향을 미칠 수 있습니다.

XPages 애플리케이션 변환

XPage 변환 메커니즘은 XPage가 아닌 IBM Notes 디자인 요소의 메커니즘과 다르므로 XPages 및 사용자 정의 제어를 변환하는 경우 각 언어에 대해 새 사본을 작성하지 마십시오.

이 태스크 정보
XPage 변환 메커니즘에서는 XPage의 변환 가능 텍스트를 별도의 파일에 자동 프로세스로 추출합니다. 그런 다음 해당 파일을 다른 언어로 변환하십시오. XPage는 웹 브라우저 또는 Notes 클라이언트의 언어에 따라 사용할 변환 파일을 결정합니다.

XPages 변환 지시사항은 Domino Designer 위키에서 "XPages: 자국어 지원 옵션 사용 방법"을 참조하십시오.

단일 복사 XPage 디자인

XPage 디자인 요소를 단일 데이터베이스에 저장할 수도 있고 런타임 시 다른 데이터베이스로 재지정할 수도 있습니다.

이 태스크 정보

단일 복사 XPage는 오브젝트 스토리지 및 브라우저 액세스에 대해 단일 위치를 사용하여 성능을 개선합니다. 영향을 받는 디자인 요소는 XPage, 사용자 정의 제어, JavaScript 라이브러리, 스타일시트 및 테마입니다. 런타임 시 해당 XPage 요소에 대해 저장소를 사용하도록 데이터베이스를 재지정하려면 다음을 수행하십시오.

프로시저

  1. 왼쪽 분할창에서 애플리케이션 특성을 선택하십시오.
  2. 가운데 맨 위 분할창에서 XPage 탭을 선택하십시오.
  3. 성능으로 스크롤 다운하십시오.
  4. 단일 복사 XPage 디자인을 선택하십시오.
  5. XPage 디자인 요소를 포함하는 NSF의 이름을 지정하십시오. 상대 이름은 Notes 데이터 디렉토리에 상대적입니다.

결과

디자인 요소를 포함하는 애플리케이션은 NSF 파일이어야 합니다.

모든 XPages 디자인 요소는 저장소에 있거나 있지 않아야 합니다. 디자인 요소를 개별적으로 겹쳐쓰거나 선택할 수는 없습니다.

단일 복사 설정을 동적으로 변경할 수 없습니다.

공유 요소는 방금 열거한 XPage 요소로 제한됩니다. 예를 들어, 양식 및 보기는 공유되지 않습니다.

XPages를 사용하여 액세스 가능한 애플리케이션 작성 - 개요

웹 애플리케이션을 작성하는 Domino 개발자의 경우, 권장되는 액세스 가능 솔루션은 XPages입니다.

다양한 범위의 능력과 장애를 가진 사용자들이 사용할 수 있는 소프트웨어 애플리케이션을 디자인하고 작성하는 것은 비즈니스 세계에서 중요한 요구사항입니다. 웹 애플리케이션을 작성하는 Domino 개발자의 경우 XPage를 사용하면 권장되는 액세스 가능 솔루션을 제공할 수 있습니다. XPages를 사용하여 액세스 가능한 애플리케이션을 작성하려면 장애가 있는 사용자 및 노화 관련 장애가 있는 성인을 포함하여 다양한 계층의 사용자들이 갖고 있는 요구를 이해해야 합니다.

장애가 있는 사용자들이 애플리케이션을 사용하는 데 경험할 수 있는 하나 이상의 문제점은 먼저, 애플리케이션 개발자가 잠재적인 문제점 영역을 이해하고 그런 다음, 이러한 문제를 해결할 수 있도록 애플리케이션을 디자인함으로써 문제점을 제거하거나 최소화할 수 있습니다.

액세스 가능한 애플리케이션을 디자인할 때 기억해야 할 네 가지 기본 장애 카테고리는 다음과 같습니다.

  • 시각
  • 청각
  • 기동성
  • 인지

다음 절에서는 XPages 애플리케이션을 액세스할 수 있도록 디자인하는 경우 고려해야 할 사항에 대한 일부 일반적인 가이드라인을 제공합니다.

시각 장애가 있는 사용자를 위한 일반 가이드라인

시각 장애를 가진 사용자를 위해 애플리케이션을 디자인하는 경우 다음 가이드라인을 기억하십시오.

  • 사용자 인터페이스 디자인의 탐색성을 고려하십시오. 시각 장애가 있는 사용자에게는 손과 눈을 함께 사용해야 하는 마우스는 유용하지 않습니다. 키보드를 사용하여 탐색합니다. 예를 들어, Tab 키를 사용하여 항목으로 초점을 이동하면 스크린 리더에서 항목을 알려주어 초점이 있는 위치를 사용자가 알 수 있습니다. 그런 다음 사용자는 Enter 키를 누릅니다. 이러한 사항을 고려하여, 애플리케이션 레이블 및 기타 텍스트는 다른 양식으로 변경될 수 있도록 텍스트가 아닌 모든 컨텐츠에 대한 텍스트 대안을 제공해야 합니다(예: 인쇄 확대, 점자, 음성, 기호 또는 일상어).
  • 그래픽, 다이어그램 등과 같은 텍스트가 아닌 모든 컨텐츠는 동일한 목적을 제공하는 텍스트 대안으로 표시되어야 합니다. 스크린 읽기 기술은 이미지에서 텍스트 정보를 가져올 수 없습니다.
  • 클라이언트 측 이미지 맵과 함께 대체 텍스트를 제공하십시오. 서버 측 이미지 맵이 사용되는 경우 동등한 텍스트 링크가 제공되어야 합니다.
  • 사용자 인터페이스에 사용된 색상과 글꼴 크기는 시력이 낮은 사용자들이 볼 수 있어야 합니다. 시력이 낮은 사용자들은 단순 글꼴 확대 뿐만 아니라 텍스트를 크게 하기 위해 하드웨어 또는 소프트웨어 돋보기의 도움이 필요합니다. 색맹이거나 시력이 낮은 사용자들은 고대비 색상을 사용하는 것이 도움이 됩니다.

    정보를 색상으로만 표시하는 경우 색맹인 사용자는 해당 정보를 놓칠 수 있습니다. 마찬가지로 시력이 낮은 사용자는 속성으로만 표시된(예: 대조, 두께, 크기, 위치, 글꼴 등) 정보를 발견하지 못할 수 있습니다. 애플리케이션에서 정보를 전달하기 위한 다양한 방법을 사용하십시오. 예를 들어, 그래프에서 색상과 채우기 패턴이 다른 막대에서 사용되는 경우 막대는 컬러 또는 흑백 중 하나로 표시될 수 있어야 합니다.

청각 장애가 있는 사용자를 위한 일반 가이드라인

청각 장애를 가진 사용자를 위해 애플리케이션을 디자인하는 경우 다음 가이드라인을 기억하십시오.

  • 오디오 출력 정보가 중복되는 동등한 시각적 양식과 함께 제공되어야 합니다. 시각적 양식에 중복되는 텍스트 옵션이 포함되도록 추가 지원을 제공하십시오.
  • 라이브 오디오 전용 및 라이브 비디오 전용 컨텐츠를 포함하여 시간 기준 매체에 대한 설명 레이블을 제공하십시오. 컴퓨터가 아닌 사용자가 컨텐츠를 액세스하는지 확인하는 데 사용되는 텍스트가 아닌 컨텐츠는 여러 가지 장애를 수용할 수 있도록 다양한 양식으로 사용 가능합니다.
  • 필요한 경우 캡션을 제공하십시오(예: 비디오).

기동성 장애가 있는 사용자를 위한 일반 가이드라인

기동성 장애를 가진 사용자를 위해 애플리케이션을 디자인하는 경우 다음 가이드라인을 기억하십시오.

  • 거동이 불편한 사용자들은 컴퓨터 입력 디바이스를 사용하거나 저장 매체를 조작할 때 어려움을 경험할 수 있습니다. 마우스 또는 키보드 없이 소프트웨어/디자인 솔루션과 조치를 제어할 수 있어야 합니다.

인지 장애가 있는 사용자를 위한 일반 가이드라인

인지 장애를 가진 사용자를 위해 애플리케이션을 디자인하는 경우 다음 가이드라인을 기억하십시오.

  • 일관된 디자인과 간략한 언어를 사용하십시오. 난독증 및 단기 기억 결함과 같은 인지 장애가 있는 사용자는 일반적인 솔루션이 필요합니다. 자세한 사항은 혼란스럽게 만들 수 있습니다. 예를 들어, 템플리트를 사용하면 각 페이지에 동일한 레이아웃과 디자인을 재사용할 수 있으므로 인지 장애가 있는 사용자들이 웹 사이트를 더 쉽게 탐색할 수 있습니다.
  • 인지 장애 또는 학습 장애가 있는 사용자는 중복 입력을 사용하는 것이 도움이 될 수도 있습니다. 예제는 오디오 파일과 비디오의 대화 내용 두 가지로 제공됩니다.

    텍스트를 보면서 동시에 크게 읽는 소리를 들으면, 자료를 더 잘 이해하는 데 청각적 및 시각적 기술의 도움을 받을 수 있습니다. 프리젠테이션에 사용되는 언어에 익숙하지 않은 사용자는 인지 장애가 있는 사용자에 대한 동일한 솔루션을 사용하면 도움을 받을 수 있습니다. 인지 솔루션 특히, 간략한 사용자 인터페이스, 용어 및 예제를 사용하는 것도 학습 장애 또는 문화적 장애를 경험할 수 있는 사용자에게 도움이 될 수 있습니다. 예를 들어, 사용자가 컴퓨터에 익숙하지 않은 경우입니다.

액세스 가능한 애플리케이션 작성에 대한 추가 정보

이러한 소스는 액세스 가능한 웹 애플리케이션 및 소프트웨어를 작성하는 데 대한 추가 정보를 제공합니다.

  • IBM Web Accessibility Checklist - 다음에 대한 체크리스트를 제공합니다.
    • 웹 사이트 및 웹 애플리케이션
    • 플래시 및 Flex 웹 애플리케이션
    • Domino 웹 애플리케이션
    • QuickViews, PARRs 및 Learning Suite을 포함하여 웹 브라우저에 표시되는 학습 컨텐츠
  • IBM Software Accessibility Checklist - 다음에 대한 체크리스트를 제공합니다.
    • SWT(Standard Widget Toolkit) 제어를 사용하여 작성된 Eclipse 애플리케이션
    • Swing 제어 및 컴포넌트를 사용하여 작성된 Java 2 이상 애플리케이션
    • AWT(Abstract Window Toolkit) 제어 및 컴포넌트를 사용하여 작성된 Java 1.1.x 애플리케이션
    • 명령행 또는 "녹색 화면" 인터페이스가 있는 제품
    • 소프트웨어 도구의 사용자 인터페이스와 출력
    • 사용자 인터페이스가 있는 일반 소프트웨어 제품 및 애플리케이션
  • Eclipse 내게 필요한 옵션 정보. 다음 링크에서 Eclipse 특정 내게 필요한 옵션 정보를 제공합니다.

XPage에 대한 특정 내게 필요한 옵션 가이드라인

XPage 애플리케이션 및 제어를 액세스 가능하게 해줍니다.

다양한 범위의 능력과 장애를 가진 사용자들이 사용할 수 있는 소프트웨어 애플리케이션을 디자인하고 작성하는 것은 비즈니스 세계에서 중요한 요구사항입니다. 웹 애플리케이션을 작성하는 Domino 개발자의 경우 XPage를 사용하면 권장되는 액세스 가능 솔루션을 제공할 수 있습니다. XPages를 사용하여 액세스 가능한 애플리케이션을 작성하려면 장애가 있는 사용자와 나이와 관련된 장애가 있는 노령의 사용자를 포함하여 다양한 계층의 사용자들이 갖고 있는 요구를 이해해야 합니다.

XPage를 사용하여 웹 애플리케이션을 작성할 때 애플리케이션을 액세스 가능하게 만들기 위해 수행할 수 있는 추가 특정 가이드라인이 있습니다. 다음 절에서 이러한 가이드라인을 설명합니다.

XPage 내게 필요한 옵션 가이드라인

XPage 디자인 요소를 사용하여 웹 애플리케이션을 작성할 때 애플리케이션을 액세스 가능하게 만들기 위해 수행할 수 있는 추가 특정 가이드라인이 있습니다. 다음이 포함됩니다.

  • 필요 시 ARIA 사용 - ARIA(Accessible Rich Internet Application) 정보는 웹 페이지의 내게 필요한 옵션을 향상시킬 수 있습니다. 특히, Ajax, HTML, JavaScript 및 관련 기술로 개발된 동적 컨텐츠와 사용자 인터페이스 구성요소에 유용합니다.

    ARIA는 HTML의 기능을 보조하는 데 사용됩니다. HTML을 사용하는 것만으로도 페이지 액세스가 용이한 경우에는 ARIA를 설정할 필요가 없습니다. HTML에 기능적 공백이 있는 경우 ARIA를 사용하여 누락될 수 있는 내게 필요한 옵션 정보를 JAWS 사용자에게 제공할 수 있습니다. 하지만, HTML이 항상 ARIA보다 우선합니다.

    따라서, JAWS를 사용할 때 일부 ARIA 속성이 HTML에 설정되어 렌더링되는 경우에도 JAWS는 이 방식에 따라 속성을 사용하고 사용자에게 표시할지 여부를 판별합니다. 예를 들어, aria-label"for" 속성은 둘 다 필요하지 않습니다. HTML은 항상 ARIA보다 우선하며 aria-label은 무시됩니다.

  • JAWS 사용 및 애플리케이션의 부분적 또는 전체 업데이트 기능 사용 - 부분적 업데이트 기능을 사용할 때에는 주의가 필요합니다. 업데이트할 대상 영역/제어가 JAWS 탐색 경로에 표시되도록 표시 순서에 있는지(즉 아직 탐색되지 않았는지) 확인하십시오.
  • 애플리케이션의 이벤트 사용 - 일반적 시행으로, 장애가 있는 사용자를 위한 키보드 탐색을 지원하려면 onmouse 이벤트에 대한 중복 기능 핸들러를 사용하십시오.
  • 액세스 키 사용 - 액세스 키는 런타임 바인딩을 지원하지 않습니다. 바인딩은 디자인 시 설정하는 것이 좋습니다. 바인딩을 고유하고 직관적으로 만드는 것이 필요합니다.
  • 가능한 경우 액세스 가능한 제어 사용 - 개발자가 액세스 가능한 제어를 사용하여 액세스 가능한 XPage 애플리케이션을 작성할 수 있도록 변경사항이 구현되었습니다. 목적은 내게 필요한 옵션 요구사항을 더 많이 준수하도록 XPage 런타임 경험을 만드는 것입니다. 제어의 액세스 용이성을 높이기 위해 새로운 내게 필요한 옵션 특성이 일부 제어에 추가되었습니다. 또한 액세스 가능한 애플리케이션 작성을 도와주기 위해 이 제품 도움말의 제어 참조 섹션에 추가 문서 및 가이드라인이 추가되었습니다.
  • 사용 중인 제어에 특정적인 내게 필요한 옵션 특성 사용. 특정 제어에 사용 가능한 내게 필요한 옵션 특성에 대한 자세한 정보는 이 도움말의 제어 참조 안내서 및 확장 라이브러리 제어 참조 안내서 섹션을 참조하십시오.

XPage 액세스 가능 테마 사용

릴리스 9.0.1에서, XPage는 이제 내게 필요한 옵션 가이드라인 및 요구사항을 준수하는 테마를 지원합니다. 이 테마의 이름은 oneuiv2.1_blue입니다.

XPage와 함께 제어를 사용하기 위한 내게 필요한 옵션 가이드라인

애플리케이션을 액세스 가능하게 만들기 위해 사용해야 하는 제어를 선택하도록 도와주는 추가 정보가 이 사용자 안내서의 제어 참조 섹션에 추가되었습니다. 이 정보에는 다음이 포함됩니다.

  • 내게 필요한 옵션 요구사항을 충족하도록 제어를 지원하는 특정 내게 필요한 옵션 특성 소개
  • 내게 필요한 옵션 요구사항을 충족하도록 애플리케이션을 지원하는 제어 사용법 가이드라인
  • 내게 필요한 옵션 요구사항을 충족하도록 애플리케이션을 지원하는 제어 임시 해결책 정보 및 대체 권장사항

특정 제어에 사용 가능한 내게 필요한 옵션 특성에 대한 자세한 정보는 이 도움말의 제어 참조 안내서 및 확장 라이브러리 제어 참조 안내서 섹션을 참조하십시오.

내게 필요한 옵션 요구사항을 충족하도록 사용자 정의된 오류 페이지 제공

시스템 관리자에 대한 일부 지원 기능을 사용하여 내게 필요한 옵션 요구사항을 충족하는 사용자 정의된 오류 페이지를 제공할 수 있습니다.

Domino 웹 엔진에서 오류 401, 403, 404 또는 500이 수신되는 경우 이러한 오류 페이지를 자신의 고유 사용자 정의 페이지로 대체할 수 있습니다. 자세한 정보는 Domino Administrator 제품 도움말의 웹 서버 메시지 사용자 정의 주제를 참조하십시오.

오류 404(즉, 파일을 찾을 수 없음)가 Domino HTTP 태스크에서 수신되는 경우 해당 오류 페이지를 사용자 정의할 수 있는 NOTES.INI 파일 설정이 있습니다. 자세한 정보는 Domino Administrator 제품 도움말과 이 기술 노트를 참조하십시오.

애플리케이션 내게 필요한 옵션 일반 팁

웹 애플리케이션을 작성하는 Domino 개발자의 경우 XPage를 사용하는 애플리케이션이 권장되는 액세스 가능 솔루션입니다. 애플리케이션을 액세스 가능하게 만들기 위해 수행할 수 있는 추가 팁이 있습니다. 다음이 포함됩니다.

  • 액세스 가능한 사용자 인증을 위해 Domino 서버에서 SSO를 사용하도록 설정하십시오.

제어 추가

시각적 요소(예: 편집 상자, 단추, 이미지 및 텍스트)를 사용하여 사용자는 XPage의 데이터를 처리할 수 있습니다.

제어 유형은 코어, 컨테이너 및 기타입니다.

태그 이름은 XML의 각 제어를 식별합니다. 공통 이름은 사용자 인터페이스에 표시됩니다. 예를 들어, 공통 이름이 Edit Box인 경우 편집 상자의 태그 이름은 inputText입니다. 다음 참조 주제는 태그 이름과 공통 이름으로 제어를 식별합니다.

제어 팔레트 및 작성 메뉴에는 기본적으로 대부분의 코어 및 컨테이너 제어가 나열됩니다. 모든 제어에 액세스하려면 기타를 선택하십시오. 파일 > 환경 설정 > Domino Designer > 팔레트에서 제어 표시를 조정할 수 있습니다.

제어 및 텍스트 처리

디자인 또는 소스 편집기를 사용하여 XPage에 제어 및 텍스트를 추가할 수 있습니다. 제어 팔레트는 제어의 소스를 제공합니다.

제어 팔레트는 편집기의 옆에 있는 창에 표시됩니다. 여기에 표시되지 않는 경우 > Eclipse 보기 표시 > 제어를 클릭하십시오.

팔레트에서 편집기(디자인소스 둘 다)로 제어를 끌어서 놓을 수 있습니다. 또는 편집기에 커서를 놓은 다음 팔레트에서 제어를 두 번 클릭할 수도 있습니다. 메뉴에서 작성 > 코어 제어 또는 작성 > 컨테이너 제어를 사용할 수도 있습니다.

일반적인 방식으로 제어를 이동, 크기 조정, 잘라내기, 복사, 붙여넣기 및 삭제할 수 있습니다.

XPage에 텍스트 및 캐리지 리턴을 추가할 수 있습니다.

디자인 편집기에서 제어에 커서를 놓으면 특성을 사용할 수 있습니다. 커서를 제어에 속하지 않는 부분에 놓으면 XPage 특성을 사용할 수 있습니다.

아웃라인 보기에서 XPage 처리를 수행할 수도 있습니다.

특성 설정

특성은 XPages 및 제어를 정의합니다.

특성은 편집기 아래의 창에 표시됩니다. 표시되는 특성은 편집기에서 초점이 있는 제어에 해당하며 초점이 제어 밖에 있는 경우 XPage에 해당합니다.

제어 또는 XPage에 대한 모든 특성의 분류된 목록에 액세스하려면 특성 탭 아래의 모든 특성을 선택하십시오. 여기에서 특성은 해당 기준 태그 이름에 따라 식별됩니다. 디자인된 사용자 인터페이스를 사용하여 특성의 서브세트에 액세스하려면 특성이벤트 탭 아래에서 다른 항목을 선택하십시오. 여기에서 특성은 구체적인 이름으로 액세스됩니다.

다음과 같이 특성에 값을 지정하십시오.
  • 정적 값은 목록에서 선택되거나 입력됩니다.
  • 동적 값은 값을 리턴하는 스크립트로 지정됩니다. 특성 옆에 있는 다이아몬드는 스크립트 편집기를 엽니다.
  • 이벤트는 서버 측 및 클라이언트 측 스크립트와 단순 조치로 지정됩니다. 이벤트 탭에서 스크립트와 단순 조치를 지정하는 것이 가장 좋습니다.
XML 소스에서 특성은 제어 요소에 대한 속성 및 컨텐츠로 표시됩니다. 예를 들어, 여기에서 idvalue 특성이 있는 inputText(편집 상자) 제어는 속성으로 정의됩니다.
<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText>
여기서, value 특성은 제어 정의의 컨텐츠로 정의됩니다.
<xp:inputText id="inputText1">
	<xp:this.value>
		<![CDATA[#{javascript:return document1.getItemValueString("subject")}]]>
	</xp:this.value>
</xp:inputText>
동적 특성은 다음과 같이 계산됩니다. 편집 중인 창의 단일 선택 단추를 사용하여 항목을 선택하십시오.
  • 동적으로 계산은 XPage를 새로 고칠 때마다 수식을 다시 계산합니다. 이 수식은 소스에서 파운드 기호 뒤에 표시됩니다(예: #{javascript:var dc = database.getAllDocuments(); "Count = " + dc.getDocumentCount();}).
  • 페이지 로드 시 계산은 XPage를 처음 로드할 때 수식을 한 번 계산합니다. 이 수식은 소스에서 달러 기호 뒤에 표시됩니다(예: ${javascript:var dc = database.getAllDocuments(); "Count = " + dc.getDocumentCount();}).

이벤트 이해

이벤트는 사용자가 수행할 수 있는 조치(예: 단추 클릭 또는 편집 상자에서 초점 제거)입니다. 이벤트 핸들러는 이벤트에 대한 응답으로 사용자(설계자)가 수행하는 조치입니다.

이벤트 핸들러는 XPage의 일부 또는 제어의 일부입니다.

이벤트 핸들러는 스크립트, 단순 조치 또는 단순 조치 그룹이 될 수 있습니다. 하나의 이벤트에 대해 핸들러는 클라이언트, 서버 또는 둘 다에서 실행하도록 지정될 수 있습니다. 클라이언트 핸들러는 false를 리턴하여 클라이언트 핸들러의 실행을 중지시키고 서버 핸들러의 실행을 취소할 수 있습니다.

디자인 모드에서 작업 중인 경우 초점을 적절한 제어 또는 페이지에 두고 이벤트 탭을 클릭한 다음 원하는 이벤트를 선택하십시오. 그런 다음 이벤트 핸들러를 지정할 수 있습니다.

이벤트는 특성으로 처리되며 특성 아래의 모든 특성에 표시됩니다. 그러나 모든 특성에서는 이벤트를 작성하거나 수정하지 않는 것이 가장 좋습니다. 이벤트 탭 또는 소스 XML을 사용하십시오.

서버 이벤트 핸들러

서버 이벤트 핸들러의 일반 형식은 소스 모드에서 다음과 같습니다. 디자인 모드에서 작업 중인 경우에는 이벤트 탭을 선택한 다음 서버 탭을 선택하십시오.
<xp:eventHandler event="name" submit="true|false"
	refreshMode="complete|partial|norefresh" refreshId="id"
	immediate="true|false"	execMode="partial|full">
							<xp:this.action>
		<![CDATA[#{javascript:textOfScript}]]> <!-- script -->
		<xp:actionName arguments</xp:actionName> <!-- or simple action -->
		<xp:actionGroup condition="#{javascript:textOfScript}"> <!-- or simple action group -->
			actions and embedded groups
		</xp:actionGroup>
							</xp:this.action>
	<xp:this.parameters>
		<xp:this.parameter name="name" value"value"</xp:this.parameter> ...
	</xp:this.parameters>
</xp:eventHandler>
여기서
  • event는 이벤트의 이름을 지정합니다(예: onblur 또는 onclick). 이벤트 탭에서 작업 중인 경우에는 적절한 이벤트를 선택하십시오.
  • submit="true"는 사용자가 이벤트를 활성화할 때 서버로 요청을 보냅니다. submit에 다른 값을 지정하면 이벤트가 비활성화됩니다. 이벤트 탭에서 작업 중인 경우에는 제출 안함을 클릭하여 이벤트를 제거하십시오.
  • refreshMode는 다음 중 하나입니다.
    • complete는 서버가 요청을 처리한 후 전체 페이지를 클라이언트로 다시 로드합니다. 이벤트 탭에서 작업 중인 경우에는 전체 업데이트를 클릭하십시오.
    • partial은 비동기 JavaScript 및 XML(AJAX) 기술을 사용하여 페이지에서 선택된 부분을 다시 로드합니다. 이벤트 탭에서 작업 중인 경우에는 부분 업데이트를 클릭하십시오.
    • norefresh는 페이지를 다시 로드하지 않습니다. 이벤트 탭에서 작업 중인 경우에는 업데이트 안함을 클릭하십시오.
  • refreshIdrefreshMode="partial"에만 적용되며 업데이트할 제어를 지정합니다. 이벤트 탭에서 작업 중인 경우에는 요소 선택을 클릭하십시오.
  • immediate="true"는 서버에서 데이터 유효성 검증을 억제합니다. 데이터를 처리하려면 이 속성을 생략하거나 true 외의 값을 지정하십시오. 이벤트 탭에서 작업 중인 경우에는 데이터를 검증하거나 업데이트하지 않음을 클릭하십시오.
  • execMode="partial"은 코드 단편이 실행되는 경우 부분 새로 고침을 지정합니다. 전체 새로 고침을 수행하려면 이 속성을 생략하거나 partial 외의 값을 지정하십시오. 이벤트 탭에서 작업 중인 경우에는 부분 실행 모드 설정을 클릭하십시오.
  • action은 다음 중 하나를 지정합니다.
    • textOfScript가 사용자 코드인 경우 스크립트. 이벤트 탭에서 작업 중인 경우에는 스크립트 편집기를 클릭하십시오. 스크립트 창에 스크립트를 입력하거나 스크립트 대화 상자를 여십시오.
    • 단순 조치의 이름 및 해당 인수. 이벤트 탭에서 작업 중인 경우에는 단순 조치를 클릭하십시오. 다양한 단추 및 목록을 사용하여 단순 조치를 작성하고 편집하십시오.
    • 단순 조치 및 기타 조치 그룹이 포함될 수 있는 actionGroup. 조건은 선택적입니다. 여러 그룹을 지정할 수 있습니다.
  • parameters는 모든 이벤트 매개변수의 이름 및 값을 지정합니다. 이벤트 탭에서 작업 중인 경우에는 이벤트 매개변수 편집을 클릭하십시오.

클라이언트 이벤트 핸들러

클라이언트 스크립트인 이벤트 핸들러의 일반 형식은 다음과 같습니다. 디자인 모드에서 작업 중인 경우에는 이벤트 탭을 선택한 다음 클라이언트 탭을 선택하십시오.
<xp:eventHandler event="name" submit="false"
	<xp:this.script>
		<![CDATA[[textOfScript]]> <!-- script -->
		<xp:actionName arguments</xp:actionName> <!-- or simple action -->
		<xp:scriptGroup conditionScript="textOfScript"> <!-- or simple action group -->
			actions and embedded groups
		</xp:scriptGroup>
	</xp:this.script>
</xp:eventHandler>
여기서
  • event는 이벤트의 이름을 지정합니다(예: onblur 또는 onclick). 이벤트 탭에서 작업 중인 경우에는 적절한 이벤트를 선택하십시오.
  • submit="false"는 사용자가 이벤트를 활성화할 때 서버로 요청을 보내지 않음을 의미합니다. 이는 클라이언트 스크립트의 경우 필수입니다.
  • script는 다음 중 하나를 지정합니다.
    • textOfScript가 사용자 코드인 경우 스크립트. 이벤트 탭에서 작업 중인 경우에는 스크립트 편집기를 클릭하십시오. 스크립트 창에 스크립트를 입력하거나 스크립트 대화 상자를 여십시오.
    • 단순 조치의 이름 및 해당 인수. 이벤트 탭에서 작업 중인 경우에는 단순 조치를 클릭하십시오. 다양한 단추 및 목록을 사용하여 단순 조치를 작성하고 편집하십시오.
    • 단순 조치 및 기타 조치 그룹이 포함될 수 있는 scriptGroup. 조건은 선택적입니다. 여러 그룹을 지정할 수 있습니다.

이벤트 핸들러 제출 및 취소

제출 유형의 단추는 다음 형식의 이벤트 핸들러를 생성합니다.
<xp:eventHandler event="onclick" submit="true"
	refreshMode="complete" immediate="false" save="true">
</xp:eventHandler>
취소 유형의 단추는 다음 형식의 이벤트 핸들러를 생성합니다.
<xp:eventHandler event="onclick" submit="true"
	refreshMode="complete" immediate="true" save="false">
</xp:eventHandler>
제출 단추의 경우 save="true"이고 취소 단추의 경우 save="false"임에 주의하십시오.

서버 및 클라이언트 측 이벤트 핸들러 결합

클라이언트 측 JavaScript 코드는 서버 측 이벤트 핸들러를 트리거할 수 있습니다. 최초 매개변수는 단순히 서버 측 이벤트 핸들러의 ID가 아니라 이벤트 핸들러의 완전한 경로여야 합니다. 그래야 사용자 정의 제어에 임베드되는 이벤트 핸들러도 호출할 수 있습니다. (# {id:eventhanderId} 또는 SSJS 함수 getClientId() 등을 사용하여) 다른 제어처럼 이벤트 핸들러 서버 측의 ID를 획득하여 이를 클라이언트 스크립트에 전달할 수 있습니다.

이벤트 핸들러는 지정하는 컨텍스트 내에서 실행됩니다. 예를 들어, ID가 view:_id1:repeatCtrl:0:_id33:eventhandler1인 이벤트 핸들러를 지정하면 ID가 repeatCtrl인 xp:repeat의 최초 항목에 대해 실행되고 view:_id1:repeatCtrl:1:_id33:eventhandler1은 두 번째 항목에 대해 실행됩니다.

클라이언트 측 이벤트 처리는 단추나 다른 사용자 인터페이스 요소로 트리거되고 정보는 서버에 전달되어 서버 측 이벤트 처리에 의해 처리됩니다. 디자인 모드에서 작업 중인 경우에는 이벤트 탭을 선택한 다음 클라이언트 탭을 선택하십시오.
<button dojoType="dijit.form.Button" type="button"
	onClick="XSP.executeOnServer('# {id:eventhandler1a}', '# {id:panel1}')">
	Click To Trigger Server Event Handler
</button>

<xp:eventHandler event="name" id="eventhandler1a">
							<xp:this.action>
		<xp:saveDocument />
							</xp:this.action>
</xp:eventHandler>
디자인 모드에서 작업 중인 경우에는 이벤트 탭을 선택한 다음 서버 탭을 선택하십시오.
XSP.executeOnServer = function () {
	// the event handler id to be executed is the first argument, and is required
	if (!arguments[0])
		return false;
	var functionName = arguments[0];

	// OPTIONAL - The Client Side ID that is partially refreshed after executing the event handler
	var refreshId = (arguments[1]) ? arguments[1] : "@none";
	var form = (arguments[1]) ? this.findForm(arguments[1]) : dojo.query('form')[0];
       
	// catch all in case dojo element has moved object outside of form...
	if (!form)
		form = dojo.query('form')[0];

	// OPTIONAL - Options object containing onStart, onComplete and onError functions for the call to the
	// handler and subsequent partial refresh
	var options = (arguments[2]) ? arguments[2] : {};

	// OPTIONAL - Value to submit in $$xspsubmitvalue. can be retrieved using context.getSubmittedValue()
	var submitValue = (arguments[3]) ? arguments[3] : '';

	// Set the ID in $$xspsubmitid of the event handler to execute
	dojo.query('[name="$$xspsubmitid"]')[0].value = functionName;
	dojo.query('[name="$$xspsubmitvalue"]')[0].value = submitValue;
	this._partialRefresh("post", form, refreshId, options);
}	

패싯 이해

패싯은 다른 제어를 배치할 제어 영역을 정의합니다.

제어는 제어 및 패싯의 컨텐츠에 따라 패싯을 렌더링할 수도 있고 렌더링하지 않을 수도 있습니다.

패싯의 특수한 사용은 보기에 페이저를 배치합니다. 패싯의 일반 사용은 기타 제어에 패널을 배치합니다. 다음은 보기의 샘플 소스 코드입니다. 패싯 영역은 상위 제어의 속성으로 표시되며 다른 제어를 포함함에 주의하십시오.
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

xp:key 스펙은 다른 제어의 특성이 아니라 패싯의 아티팩트입니다. 표시된 값은 보기의 페이저에 적절합니다. 패널의 경우 east, west, south, north, southwest, southeast, northwestnortheast 중 하나의 값을 사용하여 상위에서 다른 제어의 위치를 지정하십시오.

다음 샘플 코드에는 두 개의 링크(InboxOutbox)와 하나의 이미지를 표시하는 패널이 있습니다. 첫 번째 링크는 onclick 이벤트를 제공합니다.
<xp:viewPanel>
	<xp:this.facets>
				<xp:panel xp:key="west">
					<xp:link text="Inbox" >
						<xp:eventHandler event="onclick" submit="true">
							<xp:this.action>
							</xp:this.action>
						</xp:eventHandler>
					</xp:link>
					<xp:br/>
					<xp:link  text="Outbox" />
					<xp:br/>
					<xp:image id="viewPickerImage"
						value="/images/sampleViewPicker.gif" />
				</xp:panel>
	</xp:this.facets>
<xp:viewPanel>

패싯은 디자인 모드에서 볼 수 없습니다. 패싯을 직접 작성하고 수정하려면 소스 모드를 사용해야 합니다.

Dojo 위젯 이해

Dojo 위젯은 미리 패키지된 JavaScript 코드, HTML 및 CSS 선언이며 브라우저와 Notes 클라이언트 둘 다에서 모양과 제어의 사용을 개선합니다.

Dojo 위젯은 편집 상자, 서식있는 텍스트, 다중 행 편집 상자, 단추, 선택란, 단일 선택 단추, 날짜 시간 선택 도구, 스팬 컨텐츠, 패널, 테이블, Div 제어에서 사용할 수 있습니다.

Domino 8.5.3에서 Dojo 파일은 Notes 데이터 디렉토리의 domino\js\dojo-1.5.0\dijit 아래에 있습니다. Domino 8.5.2에서는 domino\js\dojo-1.4.1\dijit 아래에 있습니다.

애플리케이션은 지원되는 버전에 맵핑하는 /.ibmxspres/dojoroot/를 통해 Dojo 파일을 참조해야 합니다.

Dojo에 대한 자세한 정보는 http://api.dojotoolkit.org를 참조하십시오.

Dojo 자원을 XPage에서 사용 가능하게 만들기

Dojo 자원은 제어에 적용하기 전에 사용 가능하게 만들어야 합니다.

이 태스크 정보
Dojo 자원을 XPage에서 사용 가능하게 만들려면 다음을 수행하십시오.
프로시저
  1. XPage 자체에 초점을 두십시오.
  2. 특성 탭에서 Dojo를 선택하십시오.
  3. dojoTheme를 true로 설정하십시오.
  4. 특성 탭에서 자원을 선택하십시오.
  5. 사용 가능하게 할 각 위젯에 대해 다음을 수행하십시오.
    1. 추가를 클릭하고 Dojo 모듈을 선택하십시오.
    2. Dojo 모듈 이름(예: dijit.form.NumberSpinner)을 지정하십시오.
    3. (선택사항) 조건(true 또는 false로 평가되는 스크립트)을 지정하십시오.
    4. 확인을 클릭하십시오.

Dojo 위젯을 제어에 적용

일단 XPage에서 Dojo 자원을 사용할 수 있게 되면 제어에 적용할 수 있습니다.

이 태스크 정보
Dojo 위젯을 편집 상자와 같은 제어에 적용하려면 다음을 수행하십시오.
프로시저
  1. 제어에 초점을 두십시오.
  2. 특성 탭에서 Dojo를 선택하십시오.
  3. Dojo type을 Dojo 모듈 자원의 이름으로 설정하십시오(예: dijit.form.NumberSpinner). 모든 특성 아래에서 이것은 dojoType입니다.
  4. 속성 값을 설정하려면 다음과 같이 하십시오.
    1. 추가 아이콘을 클릭하십시오.
    2. 속성의 이름을 지정하십시오(예: dijit.form.NumberSpinner의 경우 value 또는 smallDelta).
    3. 속성의 값을 지정하십시오(예: dijit.form.NumberSpinnervalue에 대해 100 또는 smallDelta에 대해 5).
    모든 특성 아래에서 이것은 dojoAttributes입니다.
결과
편집 상자 제어에 적용한 dijit.form.NumberSpinner를 저장하고 미리보는 경우 편집 상자의 옆에 위로 및 아래로 화살표(스피너)가 표시됩니다. 편집 상자의 초기값은 value 속성입니다. 위로아래로 화살표를 클릭하면 smallDelta 속성만큼 값이 증가 또는 감소합니다.

제어 참조

XPage 제어가 여기에서 지정됩니다.

br - 줄 바꿈

텍스트에 분할을 삽입합니다.

카테고리
코어 제어
구문
<xp:br attributes>content</xp:br>
표 1. 모든 특성
카테고리 특성
내게 필요한 옵션 title
기본사항 attrs, binding, id, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
스타일 disableTheme, style, styleClass, themeId
사용법

런타임 시, 페이지에 줄 바꿈이 표시됩니다.

일반적으로 이 제어는 특성을 사용하지 않습니다.

예제
다음은 두 단추를 분할하는 줄 바꿈입니다.
<xp:button value="Submit" id="button2">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete"
	immediate="false" save="true"></xp:eventHandler>
</xp:button>
<xp:br></xp:br>
<xp:button value="Cancel" id="button3">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete"
	immediate="true" save="false"></xp:eventHandler>
</xp:button>

button - 단추

사용자가 클릭하여 조치를 수행할 수 있는 단추를 표시합니다.

카테고리
코어 제어
구문
<xp:button attributes>content</xp:button>
표 2. 필수 특성
특성 설명
id 기본값 button1, button2 등을 지정합니다.
value 단추의 레이블을 지정합니다.
eventHandler 단추가 활성화될 때 조치를 지정합니다. 사용법 절을 참조하십시오.
사용법
런타임 시, 페이지에 단추가 표시됩니다. 사용자가 단추를 클릭할 수 있습니다.
단추에는 세 가지 유형이 있습니다.
  • 단추(기본값)는 사용자가 작성하는 이벤트 핸들러(예: onclick)에 응답합니다. 내게 필요한 옵션 준수를 위해 value 특성은 수행할 조치를 설명해야 합니다.
  • 제출은 데이터를 저장하고 페이지를 닫습니다. 내게 필요한 옵션 준수를 위해 value 특성은 Submit이어야 합니다.
  • 취소는 페이지를 닫습니다. 내게 필요한 옵션 준수를 위해 value 특성은 Cancel이어야 합니다.
페이지를 닫을 때 로드되는 다음 페이지는 페이지의 navigationRules 특성에 따라 결정되며 이는 UI에서 다음 페이지(성공 또는 취소)입니다.
UI에 단추 유형을 설정하려면 특성 아래에서 단추를 클릭하고 단추 유형을 찾으십시오. 생성된 eventHandler 특성에는 다음과 같은 속성이 있습니다. eventHandler 특성을 수동으로 구성하는 경우 다음 규칙에 따르십시오.
단추 제출 취소
event=any event="onclick" event="onclick"
submit=any submit="true" submit="true"
refreshMode=any refreshMode="complete" refreshMode="complete"
immediate=any immediate="false" immediate="true"
save=any save="true" save="false"
action=단순 조치 또는 이벤트 핸들러 action=없음 action=없음
예제
이 단추 제어는 제출 유형입니다.
<xp:button id="button1" value="Submit">
	<xp:eventHandler event="onclick"
		submit="true" refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
</xp:button>
이 단추 제어는 취소 유형입니다.
<xp:button id="button2" value="Cancel">
	<xp:eventHandler event="onclick"
		submit="true" refreshMode="complete" immediate="true" save="false">
						</xp:eventHandler>
</xp:button>
이 단추 제어는 클릭할 때 데이터 저장 단순 조치를 실행하는 단추 유형입니다.
<xp:button id="button1" value="Save and Exit">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<xp:save name="/xpage2.xsp"></xp:save>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>

callback - 편집 가능 영역

XPage에 임베드되었을 때 편집할 수 있는 영역과 함께 사용자 정의 제어를 제공합니다.

카테고리
코어 제어
구문
<xp:callback attributes>content</xp:callback>
표 4. 필수 특성
특성 설명
id callback1, callback2 등으로 기본 설정됩니다.
facetName 패싯 리젼을 식별합니다.
표 5. 모든 특성
카테고리 특성
기본사항 attrs, binding, facetName, id, loaded, rendered, rendererType
스타일 disableTheme, themeId
사용법
이 제어는 사용자 정의 제어에만 적용됩니다.

자세한 정보는 사용자 정의 제어의 편집 가능 영역 정의사용자 정의 제어에서 편집 가능 영역의 특성 설정의 내용을 참조하십시오.

checkBox - 선택란

선택하거나 선택 취소할 수 있는 상자를 표시합니다.

카테고리
코어 제어
구문
<xp:checkBox attributes>content</xp:checkBox>
표 6. 필수 특성
특성 설명
id 기본값 checkBox1, checkBox2 등을 지정합니다.
text 레이블을 제공합니다.
value 데이터 요소 또는 기타 값에 제어를 바인드합니다.
checkedValue 상자가 선택된 경우 데이터 값을 지정합니다. 기본값은 문자열 true입니다.
uncheckedValue 상자를 지운 경우 데이터 값을 지정합니다. 기본값은 문자열 false입니다.
defaultChecked 기본적으로 상자를 선택하도록 true를 지정합니다.
사용법
런타임 시, 레이블이 새로 작성한 텍스트로 페이지에 표시됩니다. 사용자가 선택하거나 선택 취소할 수 있습니다. 선택하면 상자에 선택 표시가 나타납니다.

내게 필요한 옵션 준수를 위해 레이블은 선택란 다음에 있어야 합니다. 텍스트 특성을 지정하거나 선택란 다음에 레이블 제어를 배치하여 이를 수행할 수 있습니다. 레이블은 선택란 앞에 있지 않아야 합니다.

예제
이 선택란 제어는 선택란이 선택(기본값)되었는지 또는 선택 취소되었는지에 따라 데이터 값을 지정합니다.
<xp:checkBox id="checkBox2" text="Use user name instead of Anonymous"
	defaultChecked="true" value="#{document1.loginname}" uncheckedValue="Anonymous"
	checkedValue="#{javascript:session.getUserName()}">
</xp:checkBox>
이 선택란 제어는 phonesame이라는 요청 변수에 바인드됩니다. 상자가 변경되면 스크립트가 실행됩니다. 선택란이 체크되면 스크립트는 phonenight 제어(편집 상자)의 값을 phoneday 제어와 같게 설정합니다.
<xp:checkBox text="Night phone same as day" id="checkBox1"
	value="#{requestScope.phonesame}">
	<xp:eventHandler event="onchange" submit="true" 	refreshMode="complete">
		<xp:this.action><![CDATA[#{javascript:
			if(requestScope.phonesame == "true") {
				getComponent("phonenight").setValue(
					getComponent("phoneday").getValue());
			}
		}]]></xp:this.action>
						</xp:eventHandler>
</xp:checkBox>

checkBoxGroup - 선택란 그룹

선택하거나 지울 수 있는 여러 상자를 표시합니다.

카테고리
코어 제어
구문
<xp:checkBoxGroup attributes>content</xp:checkBoxGroup>
표 8. 임베드된 제어
제어 설명
selectItem 사용자가 선택할 수 있는 하나의 항목을 제공합니다.
selectItems 사용자가 선택할 수 있는 하나 이상의 항목을 제공합니다.
표 9. 필수 특성
카테고리 특성
id 기본값 checkBoxGroup1, checkBoxGroup2 등을 지정합니다.
value 데이터 요소 또는 기타 값에 제어를 바인드합니다.
legend 화면 표시 그룹 설명을 제공합니다.
사용법
런타임 시, 페이지에 하나 이상의 선택란이 표시됩니다. 사용자가 선택하거나 지울 수 있습니다. 선택하면 상자에 선택 표시가 나타납니다.

선택란에 바인드된 데이터 요소는 여러 값을 허용해야 합니다.

내게 필요한 옵션 준수를 위해 legend 특성을 지정해야 합니다.

예제
이 선택란 그룹 제어는 선택할 수 있는 두 개의 항목을 제공합니다.
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" value="#{document1.fruit}">
		<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
		<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
	</xp:checkBoxGroup>
이 선택란 그룹 제어는 수식을 사용하여 선택란에 두 개의 항목을 제공합니다.
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
이 선택란 그룹은 보기 열의 값에서 해당 항목 선택을 가져옵니다.
<xp:checkBoxGroup id="checkBoxGroup1" legend="Select fruit" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

comboBox - 콤보 상자

하나를 선택할 수 있는 항목 목록을 표시합니다.

카테고리
코어 제어
구문
<xp:comboBox attributes>content</xp:comboBox>
표 11. 임베드된 제어
제어 설명
selectItem 사용자가 선택할 수 있는 하나의 항목을 제공합니다.
selectItems 사용자가 선택할 수 있는 하나 이상의 항목을 제공합니다.
표 12. 필수 특성
특성 설명
id 기본값 comboBox1, comboBox2 등을 지정합니다.
text 레이블을 제공합니다.
value 데이터 요소 또는 기타 값에 제어를 바인드합니다.
사용법
런타임 시, 페이지에 드롭 다운 목록이 표시됩니다. 사용자가 하나의 항목을 선택할 수 있습니다.
예제
이 콤보 상자 제어는 선택할 수 있는 두 개의 항목을 제공합니다.
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:comboBox>
이 콤보 상자 제어는 수식을 사용하여 선택할 수 있는 두 개의 항목을 제공합니다.
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:comboBox>
이 콤보 상자는 보기 열의 값에서 해당 항목 선택을 가져옵니다.
<xp:comboBox id="comboBox1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:comboBox>

dataTable - 데이터 테이블

데이터 소스와 연관된 행과 열로 배열된 셀을 포함합니다. 각 셀에는 다른 제어(테이블 포함) 및 텍스트가 있을 수 있습니다.

카테고리
컨테이너 제어
구문
<xp:dataTable attributes>
	<xp:column attributes>content	</xp:column>
	...
</xp:dataTable>
표 14. 필수 특성
특성 설명
id (dataTable) 기본값 dataTable1, dataTable2 등을 지정합니다.

(column) 기본값 column1, column2 등을 지정합니다.

value (dataTable) 일반적으로 데이터 바인딩은 요소 콜렉션에 대한 것입니다(예: NotesDocumentCollection 오브젝트).
var (dataTable) 일반적으로 이 변수는 바인드된 데이터 콜렉션의 한 멤버를 참조합니다(예: NotesDocumentCollection 오브젝트에 대한 바인딩인 경우 NotesDocument 오브젝트).
표 15. 모든 특성(dataTable)
카테고리 특성
내게 필요한 옵션 caption, role, summary, title
참고: role 특성은 9.0.1 이상에서는 더 이상 사용하지 않습니다. 기본적으로 적절한 준수 값이 생성됩니다. 내게 필요한 옵션 표준을 준수하기 위해서는 이 특성에 대해 값을 지정하지 마십시오.
기본사항 attrs, binding, dir, disabled, id, lang, loaded, partialExecute, partialRefresh, refreshId, rendered, rendererType, rules
데이터 data, first, indexVar, rows, value, var
이벤트 onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
형식 bgcolor, border, cellpadding, cellspacing, frame, showUnreadMarks, width
스타일 captionStyleClass, columnClasses, disableTheme, footerClass, headerClass, readMarksClass, rowClasses, style, styleClass, themeId, unreadMarksClass
표 16. 모든 특성(column)
카테고리 특성
내게 필요한 옵션 role
기본사항 binding, id, loaded, rendered, rendererType
스타일 disableTheme, style, styleClass, themeId
페이저
페이저를 포함하는 패싯 영역은 디자인 스펙에 따라 테이블의 일부입니다. 패싯 영역 내에서 작업하려면 소스 모드를 사용하십시오.

다음은 페이저 제어에 대한 샘플 패싯입니다.

	<xp:this.facets>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="header" id="pager1">
	</xp:pager>
</xp:this.facets>
특성 아래의 표시 탭에 있는 다음 상자는 다음과 같은 패싯 컨텐츠에 영향을 미칩니다.
  • 헤더에 페이저 표시(기본적으로 지워짐)는 header 키의 pager 제어를 생성합니다. 이 상자가 지워져 있으면 패싯 영역이 생성되지 않습니다.
  • 푸터에 페이저 표시(기본적으로 지워짐)는 footer 키의 pager 제어를 생성합니다.
사용법
런타임 시, 페이지에 데이터 테이블이 표시됩니다. 사용자는 테이블에서 한 번에 하나의 셀에 액세스할 수 있습니다.

데이터 테이블을 작성한 후에는 행과 열을 추가하고 삭제할 수 있습니다.

각 열의 컨텐츠는 테이블의 헤더, 가운데 및 푸터 행을 나타내는 하나, 둘 또는 세 개의 값입니다. 가운데 행은 데이터 소스의 요소 수에 따라 변하는 행 수로 렌더링됩니다.

Domino 보기의 경우 카테고리, 총계, 응답 문서 및 정렬 등의 기능은 View 제어를 선호합니다. View 제어는 해당 소스 Domino 보기의 기능을 통합합니다.

View 제어의 기능보다 많은 기능이 필요한 경우 이 제어를 사용하십시오. 이 제어를 사용하면 사용자가 열 내에서 편집할 수 있지만 View 제어는 그렇지 않습니다. 이 제어를 사용하면 선택하는 기타 제어(예: 이미지)를 임베드하여 바인드할 수 있지만 View 제어는 소스 Domino 보기의 디자인에 의해 제한됩니다.

내게 필요한 옵션 준수를 위해 이 제어를 시각적 레이아웃에 사용하지 않아야 하며 role 특성을 presentation으로 설정하지 마십시오. 시각적 레이아웃의 경우 테이블 제어를 사용하십시오.

예제
이 데이터 테이블에는 현재 데이터베이스에 있는 모든 문서의 subjectfruit 항목이 표시됩니다.
<xp:dataTable id="dataTable1" rows="30"
	value="#{javascript:return database.getAllDocuments()}" var="rowdoc">
	<xp:column id="column1">
	<xp:this.facets>
			<xp:label value="subject" id="label1" xp:key="header" style="font-weight:bold"></xp:label>
	</xp:this.facets>
		<xp:text escape="true" id="computedField1"><xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("subject")}]]>
		</xp:this.value>	</xp:text>
	</xp:column>
	<xp:column id="column2">
	<xp:this.facets>
			<xp:label value="fruit" id="label2" xp:key="header" style="font-weight:bold"></xp:label>
	</xp:this.facets>
		<xp:text escape="true" id="computedField2"><xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("fruit")}]]>
		</xp:this.value></xp:text>
	</xp:column>
</xp:dataTable>

dateTimeHelper - 날짜 시간 선택도구

편집 상자에 날짜 및 시간 값의 선택에 대한 선택도구를 표시합니다.

카테고리
코어 제어
구문
<xp:dateTimeHelper attributes>content</xp:dateTimeHelper>
표 17. 필수 특성
특성 설명
id 기본값 dateTimeHelper1, dateTimeHelper2 등을 지정합니다.
표 18. 모든 특성
카테고리 특성
기본사항 binding, id, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
형식 timeClickableIncrement, timeVisibleIncrement, timeVisibleRange
스타일 disableTheme, themeId
사용법
디자인 모드에서 날짜 시간 선택도구 제어를 작성하면 편집 상자 제어에 날짜/시간 표시 유형으로 자동으로 임베드됩니다. 날짜 시간 선택도구 특성에 액세스하려면 소스 모드를 선택하고 임베드된 dateTimeHelper 요소에 초점을 맞추십시오.

런타임 시, 사용자는 선택도구를 클릭한 후 편집 상자에 삽입할 날짜 및 시간을 선택할 수 있습니다.

내게 필요한 옵션 준수를 위해 type 특성에 both를 지정하지 마십시오. 두 가지 보조 특성인 type=datetype=time 사용을 고려하십시오.

예제
두 개의 편집 상자에는 날짜 및 시간 값 선택을 위한 선택도구가 있습니다.
<xp:inputText id="inputText1">
	<xp:dateTimeHelper id="dateTimeHelper1"></xp:dateTimeHelper>
	<xp:this.converter>
		<xp:convertDateTime type="date"></xp:convertDateTime>
	</xp:this.converter>
</xp:inputText>
<xp:inputText id="inputText2">
	<xp:dateTimeHelper id="dateTimeHelper2"></xp:dateTimeHelper>
	<xp:this.converter>
		<xp:convertDateTime type="time"></xp:convertDateTime>
	</xp:this.converter>
</xp:inputText>

div - 분할

HTML에서 컨텐츠의 분할 또는 블록으로 동작합니다. 다른 제어 및 텍스트를 포함합니다.

카테고리
컨테이너 제어
구문
<xp:div attributes>content</xp:div>
표 19. 모든 특성
카테고리 특성
내게 필요한 옵션 role, title
기본사항 attrs, binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
이벤트 onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
스타일 disableTheme, style, styleClass, themeId
사용법

런타임 시, 분할의 컨텐츠는 지정된 특성으로 페이지에 나타납니다.

예제
이 Div 제어에는 여러 스타일의 텍스트 및 편집 상자가 있습니다.
<xp:div style="font-weight:bold;padding-bottom:20.0px">
	Day phone =>
	<xp:inputText id="inputText2" value="#{document1.phoneday}"></xp:inputText>
</xp:div>
<xp:div style="font-weight:bold">
	Night phone => 
	<xp:inputText id="inputText3" value="#{document1.phonenight}"></xp:inputText>
</xp:div>

eventHandler - 이벤트 핸들러(제어)

사용자 조치(예: 제어 클릭)에 응답합니다.

카테고리
기타 제어
구문
<xp:eventHandler attributes>content</xp:eventHandler>
표 20. 필수 특성
특성 설명
save 양식에 연관된 데이터를 저장하거나 저장하지 않습니다. 취소 단추 유형의 경우 false여야 합니다.
submit 서버로 요청을 보내고 응답을 받으려면 true입니다. 클라이언트 핸들러는 false를 리턴하여 요청 보내기를 취소할 수 있습니다.
refreshMode 페이지 새로 고침이 전체적으로 수행되는지, 일부만 수행되는지 또는 수행되지 않는지를 지정합니다.
immediate 취소 유형의 단추인 경우 true여야 합니다.
사용법
이벤트 이해의 내용을 참조하십시오.
예제
제출 유형의 단추 제어입니다.
<xp:button value="submit" id="button1">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
</xp:button>
취소 유형의 단추 제어입니다.
<xp:button value="cancel" id="button2">
	<xp:eventHandler event="onclick" submit="true"
		refreshMode="complete" immediate="true" save="false">
						</xp:eventHandler>
</xp:button>
사용자가 코딩한 onclick 이벤트가 있는 단추 제어입니다.
<xp:button value="set username" id="button3">
	<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
							<xp:this.action>
			<![CDATA[#{javascript:getComponent("inputText2").setValue(session.getCommonUserName())}]]>
							</xp:this.action>
						</xp:eventHandler>
</xp:button>

fileDownload - 파일 다운로드

파일을 로컬 파일 시스템으로 다운로드합니다.

카테고리
코어 제어
구문
<xp:fileDownload attributes>content</xp:fileDownload>
표 22. 필수 특성
특성 설명
id 기본값 fileDownload1, fileDownload2 등을 지정합니다.
value 파일 제어를 서식있는 텍스트 유형이어야 하는 데이터 요소 또는 기타 값에 바인드합니다.
mimetype 파일 유형에 상관없이 MIME 유형의 다운로드를 강제로 실행합니다.
useUploadName 기본적으로 원래 파일 이름이 사용됩니다.
filename 원래 파일 이름을 사용하지 않는 경우 첨부 파일 이름을 지정합니다.
표 23. 모든 특성
카테고리 특성
내게 필요한 옵션 accesskey, role, tabindex, title
참고: role 특성은 9.0.1 이상에서는 더 이상 사용하지 않습니다. 기본적으로 적절한 준수 값이 생성됩니다. 내게 필요한 옵션 표준을 준수하기 위해서는 이 특성에 대해 값을 지정하지 마십시오.
기본사항 attrs, allowDelete, binding, createdTitle, createdValue, deleteImageTitle, deleteMessage, dir, disabled, displayCreated, displayLastModified, displaySize, displayType, fileNameHrefValue, fileNameTitle, fileNameValue, hideWhen, id, lang, lastModifiedTitle, lastModifiedValue, loaded, rendered, rendererType, rowAttrs, rules, sizeTitle, sizeValue, typeTitle, typeValue
데이터 data, first, indexVar, rows, value, var
이벤트 onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
형식 bgcolor, border, cellpadding, cellspacing, frame, width
스타일 captionStyleClass, columnClasses, createdStyleClass, deleteStyleClass, disableTheme, footerClass, headerClass, modifiedStyleClass, nameStyleClass, rowClasses, sizeStyleClass, style, styleClass, themeId, typeStyleClass
사용법
런타임 시, 페이지에 첨부 파일에 대한 정보가 표시됩니다. 여기에는 파일 유형, 크기, 이름, 수정 날짜, 작성 날짜 및 사용자가 첨부 파일을 삭제할 수 있는지 여부가 포함됩니다. 사용자는 이름을 클릭하여 파일 브라우저에 액세스하고 첨부 파일을 다운로드할 수 있습니다.
예제
이 파일 다운로드 제어를 사용하여 사용자는 문서의 본문 항목에서 파일을 다운로드할 수 있습니다.
<xp:fileDownload rows="30" id="fileDownload1"
	displayLastModified="false" value="#{document2.body}">
</xp:fileDownload>

fileUpload - 파일 업로드

로컬 파일 시스템에서 파일을 업로드합니다.

카테고리
코어 제어
구문
<xp:fileUpload attributes>content</xp:fileUpload>
표 24. 필수 특성
특성 설명
id 기본값 fileUpload1, fileUpload2 등을 지정합니다.
value 파일 제어를 서식있는 텍스트 유형이어야 하는 데이터 요소 또는 기타 값에 바인드합니다.
mimetype 파일 유형에 상관없이 MIME 유형의 업로드를 강제로 실행합니다.
useUploadName 기본적으로 원래 파일 이름이 사용됩니다.
filename 원래 파일 이름을 사용하지 않는 경우 첨부 파일 이름을 지정합니다.
사용법
런타임 시, 페이지에 파일 브라우저가 표시됩니다. 사용자는 로컬 파일 시스템에서 파일을 선택하거나 지정할 수 있습니다.

페이지가 저장될 때 파일은 데이터 저장소의 바인드된 항목에 첨부됩니다. 이 항목은 파일 첨부(예: 서식있는 텍스트)를 허용하는 유형이어야 합니다.

예제
이 파일 업로드 제어는 문서의 본문 항목에 파일을 업로드합니다.
<xp:fileUpload id="fileUpload1" value="#{document1.body}"></xp:fileUpload>

image - 이미지

이미지를 표시합니다.

카테고리
코어 제어
구문
<xp:image attributes>content</xp:image>
표 26. 필수 특성
특성 설명
id 기본값 image1, image2 등을 지정합니다.
for 대상 제어를 식별합니다.
표 27. 모든 특성
카테고리 특성
내게 필요한 옵션 alt, role, title
기본사항 attrs, binding, dir, id, ismap, lang, loaded, longdesc, rendered, rendererType, url, usemap, value
이벤트 onblur, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
형식 height, width
스타일 disableTheme, style, styleClass, themeId
사용법
런타임 시, 페이지에 이미지가 표시됩니다.
예제
다음은 페이지에 이미지를 표시합니다.
<xp:image url="/sound.gif" id="image1" alt="Sound image"></xp:image>

include - 페이지 포함

다른 XPage에 대한 참조를 삽입합니다.

카테고리
컨테이너 제어
구문
<xp:include attributes>content</xp:include>
표 28. 필수 특성
특성 설명
id 기본값 include1, include2 등을 지정합니다.
pageName 포함할 페이지입니다.
표 29. 모든 특성
카테고리 특성
내게 필요한 옵션 role, title
기본사항 attrs, binding, componentId, dir, id, loaded, pageName, rendered, rendererType
데이터 acl, data, dataContexts, readonly
dojo dojoAttributes, dojoType
이벤트 onClientLoad
스타일 disableTheme, outerStyleClass, style, styleClass, themeId
사용법
런타임 시, 포함된 XPage가 표시됩니다.

디자인 모드에서는 포함된 페이지를 볼 수 있지만 수정할 수는 없습니다.

예제
다음은 페이지 포함 제어입니다.
<xp:include pageName="/main.xsp" id="include1"></xp:include>

inputHidden - 숨겨진 입력

사용자에게서 데이터를 숨깁니다.

카테고리
코어 제어
구문
<xp:inputHidden attributes>content</xp:inputHidden>
표 30. 필수 특성
특성 설명
id 기본값 inputHidden1, inputHidden2 등을 지정합니다.
value 데이터 요소 또는 기타 값에 제어를 바인드합니다.
사용법
런타임 시, 페이지에 아무것도 표시되지 않습니다. 제어는 프로그램적으로 처리될 수 있습니다.

이 제어에 액세스하려면 제어 팔레트에서 기타를 여십시오. (또는 작성 > 기타를 클릭하십시오.)

예제
이 숨겨진 입력은 Domino 양식의 필드에 바인드됩니다.
<xp:inputHidden id="inputHidden1" value="#{document1.description}"></xp:inputHidden>

inputRichText - 서식있는 텍스트

서식있는 텍스트로 형식화된 데이터 입력을 위한 입력 필드를 표시합니다.

카테고리
코어 제어
구문
<xp:inputRichText attributes>content</xp:inputRichText>
표 32. 필수 특성
특성 설명
id 기본값 inputRichText1, inputRichText2 등을 지정합니다.
value 데이터 요소 또는 기타 값에 제어를 바인드합니다.
사용법
런타임 시, 페이지에 도구 모음이 있는 편집 상자가 표시됩니다. 사용자는 굵은체 및 기울임꼴과 같은 속성이 있는 텍스트를 입력할 수 있고 테이블, 첨부 파일, 임베드된 오브젝트 및 기타 아티팩트를 삽입할 수 있습니다.

CKEditor(http://ckeditor.com)는 XPage의 기본 서식있는 텍스트 편집기입니다. 이 편집기에서는 이미지, 테이블, 링크 및 이모티콘을 임베드할 수 있습니다. 편집기에는 맞춤법 검사기가 포함되어 있습니다.

렌더링되는 도구 모음을 조정할 수 있습니다. 초점이 있는 서식있는 텍스트 제어에서 Dojo 탭을 클릭한 다음 이름이 toolbarType이고 값이 lite, medium 또는 full인 속성(dojoAttributes 특성)을 추가하십시오.

Dojo 서식있는 텍스트 편집기로 되돌릴 수 있습니다. 초점이 있는 서식있는 텍스트 제어에서 Dojo 탭을 클릭하고 Dojo 유형(dojoType 특성)을 ibm.xsp.widget.layout.RichText로 지정하십시오.

예제
이 서식있는 텍스트 제어는 Domino 양식의 필드에 바인드됩니다.
<xp:inputRichText id="inputRichText1" value="#{document1.body}"></xp:inputRichText>
이 서식있는 텍스트 제어는 Dojo 편집기를 사용합니다.
<xp:inputRichText id="inputRichText1"
	value="#{document1.body}" dojoType="ibm.xsp.widget.layout.RichText">
</xp:inputRichText>
이 서식있는 텍스트 제어는 전체 도구 모음을 렌더링합니다.
<xp:inputRichText id="inputRichText1" value="#{document1.body}">
	<xp:this.dojoAttributes>
		<xp:dojoAttribute name="toolbarType" value="full"></xp:dojoAttribute>
	</xp:this.dojoAttributes>
</xp:inputRichText>

inputText - 편집 상자

한 행의 데이터 입력을 위한 입력 필드를 표시합니다.

카테고리
코어 제어
구문
<xp:inputText attributes>content</xp:inputText>
표 34. 필수 특성
특성 설명
id 기본값 inputText1, inputText2 등을 지정합니다.
value 데이터 요소 또는 기타 값에 편집 상자를 바인드합니다.
사용법
런타임 시, 페이지에 편집 상자가 표시됩니다. 사용자는 상자에 한 행의 텍스트를 입력할 수 있습니다.
예제
이 편집 상자는 Domino 양식의 필드에 바인드됩니다.
<xp:inputText id="inputText1" value="#{document1.subject}"></xp:inputText>
이 편집 상자 제어는 범위가 지정된 변수에 바인드됩니다.
<xp:inputText id="inputText2" value="#{requestScope.subject}"></xp:inputText>

inputTextarea - 다중 행 편집 상자

다중 행의 데이터 입력을 위한 입력 필드를 표시합니다.

카테고리
코어 제어
구문
<xp:inputTextarea attributes>content</xp:inputTextarea>
표 36. 필수 특성
특성 설명
id 기본값 inputTextarea1, inputTextarea2 등을 지정합니다.
value 데이터 요소 또는 기타 값에 제어를 바인드합니다.
cols stylewidth 속성으로 겹쳐쓰지 않은 경우 열 수를 지정합니다.
rows styleheight 속성으로 겹쳐쓰지 않은 경우 행 수를 지정합니다.
사용법
런타임 시, 페이지에 편집 상자가 표시됩니다. 사용자는 상자에 다중 행의 텍스트를 입력할 수 있습니다. 상자의 크기를 초과하는 경우 스크롤링 디바이스가 표시됩니다.
예제
이 다중 행 편집 상자 제어는 Domino 양식의 필드에 바인드됩니다.
<xp:inputTextarea id="inputTextarea1" value="#{document1.description}"
	cols="64" rows="8">
</xp:inputTextarea>

label - 레이블(제어)

텍스트를 표시합니다.

카테고리
코어 제어
구문
<xp:label attributes>content</xp:label>
표 38. 필수 특성
특성 설명
id 기본값 label1, label2 등을 지정합니다.
value 레이블의 값을 지정합니다.
for 사용자가 클릭할 때 초점을 확보하고 그렇지 않으면 이 제어에 초점을 놓는 제어를 지정합니다.
표 39. 모든 특성
카테고리 특성
내게 필요한 옵션 accesskey, role, readonly, title
기본사항 attrs, binding, dir, for, htmlFilter, id, lang, loaded, rendered, rendererType
데이터 converter, value
이벤트 onblur, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
스타일 disableTheme, style, styleClass, themeId
사용법
런타임 시, 페이지에 레이블의 값을 표시합니다. 지정에 따라 초점이 재지정됩니다.

레이블 제어는 포함된 XPage 또는 패널이 읽기 전용이거나 레이블 readonly 특성이 true인 경우 읽기 전용입니다.

예제
이 레이블 제어는 공통 사용자 이름을 파란색으로 표시합니다.
<xp:label
	value="#{javascript:session.getCommonUserName()}"
	id="label1" style="color:rgb(0,0,255)" for="inputText1">
</xp:label>
내게 필요한 옵션 준수
내게 필요한 옵션 표준을 준수하도록 레이블을 적용하려면 아래에 표시된 대로 for 특성과 함께 레이블 제어를 사용하십시오.
<xp:label value="foo" for="inputText1" />
&#160;
<xp:inputText id="inputText1" defaultValue="foo" />
또는 아래에 표시된 대로 aria-labelledby 속성을 적용하십시오. 그러나 이 속성은 WAI-ARIA를 지원하지 않는 브라우저에서는 지원되지 않습니다.
<xp:label value="foo" id="label1">
		&#160;
	<xp:inputText id="inputText1" defaultValue="foo" >
	<xp:this.attrs>
				<xp:attr name="aria-labelledby" value="#{id:label1}"></xp:attr>
	</xp:this.attrs>
	</xp:inputText>
</xp:label>
또는 아래에 표시된 대로 aria-label 속성을 적용하십시오. 그러나 이 속성은 숨겨진 레이블을 생성합니다.
<xp:label value="foo" id="label1">
		&#160;
	<xp:inputText id="inputText1" defaultValue="foo" >
	<xp:this.attrs>
				<xp:attr name="aria-label" value="bar"></xp:attr>
	</xp:this.attrs>
	</xp:inputText>
</xp:label>

두 가지 대체 방법 모두에서, 표시된 대로 속성 값에 전체 클라이언트 측 ID를 사용하십시오.

listBox - 목록 상자

하나 이상을 선택할 수 있는 항목 목록을 표시합니다.

카테고리
코어 제어
구문
<xp:listBox attributes>content</xp:listBox>
표 42. 임베드된 제어
제어 설명
selectItem 사용자가 선택할 수 있는 하나의 항목을 제공합니다.
selectItems 사용자가 선택할 수 있는 하나 이상의 항목을 제공합니다.
표 43. 필수 특성
특성 설명
id 기본값 listBox1, listBox2 등을 지정합니다.
value 데이터 요소 또는 기타 값에 제어를 바인드합니다.
사용법
런타임 시, 페이지에 항목 목록이 있는 상자가 표시됩니다. 사용자는 하나 이상의 항목을 선택할 수 있습니다. 항목이 둘 이상인 경우 multiple이 true여야 합니다.

둘 이상의 항목이 있는 경우 목록 상자에 바인드된 데이터 요소는 여러 값을 허용해야 합니다.

예제
이 목록 상자 제어는 선택할 수 있는 두 개의 항목을 제공합니다.
<xp:listBox id="listBox1" value="#{document1.fruit}" multiple="true">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:listBox>
이 목록 상자 제어는 수식을 사용하여 선택할 수 있는 두 개의 항목을 제공합니다.
<xp:listBox id="listBox1" value="#{document1.fruit}"
	multiple="true">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:listBox>
이 목록 상자는 보기 열의 값에서 해당 항목 선택을 가져옵니다.
<xp:listBox id="listBox1" value="#{document1.fruit}"
	multiple="true">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:listBox>

message - 표시 오류

하나의 제어에 대한 오류 메시지를 표시합니다.

카테고리
코어 제어
구문
<xp:message attributes>content</xp:message>
표 45. 필수 특성
특성 설명
id 기본값 message1, message2 등을 지정합니다.
for 대상 제어를 식별합니다.
표 46. 모든 특성
카테고리 특성
내게 필요한 옵션 role, title
기본사항 attrs, binding, dir, for, id, lang, loaded, rendered, rendererType
형식 showDetail, showSummary, tooltip
스타일 disableTheme, errorClass, errorStyle, fatalClass, fatalStyle, infoClass, infoStyle, style, styleClass, themeId, warnClass, warnStyle
모든 특성
사용법
기본적으로 대부분의 유효성 검증 검사는 서버로 요청을 보내기 전에 클라이언트에서 발생합니다. 유효성 검증에 실패하는 경우 클라이언트는 대화 상자에 오류 메시지를 표시하고 서버 요청을 취소합니다.

서버에서 유효성 검증 검사가 발생하고 이 메시지에 오류 메시지가 표시되는 경우에는 해당 제어 대상의 disableClientSideValidationtrue로 설정해야 합니다.

이 제어를 사용할 때 내게 필요한 옵션 요구사항을 준수하려면 예제에 표시된 대로 aria-describedby 속성을 사용하여 각 xp:message control을 연관시키십시오. 이는 연관된 유효성 검증 오류를 나타내는 초점을 입력 제어에서 수신할 때 사용자에게 설명을 제공하여 보조 기술을 지원합니다.

<xp:label id="xpLabel1" value="Enter any value" for="xpInputText1" />
<xp:inputText id="xpInputText1" value="#{sessionScope.foo}" required="true"
        	disableClientSideValidation="true">
	<xp:this.attrs>
		<xp:attr attr name="aria-describedby" value="#{id:msgPanel}" />
	<xp:this.attrs>

</xp:inputText>

<xp:panel id="msgPanel">
	<xp:message id="message1" for="xpInputText1"/>
</xp:panel>
참고: 공백으로 구분된 레이블의 클라이언트 ID 목록을 aria-describedby 속성에 지정하여 다중 설명을 입력 제어와 연관시킬 수 있습니다.
예제
다음은 숫자 데이터에 바인드된 입력 상자이며 클라이언트 측에서 유효성을 검증하지 않습니다. 다음은 입력 상자의 오류 표시입니다.
<xp:inputText id="inputText3" value="#{document1.number}"
	disableClientSideValidation="true">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
<xp:message id="message1" for="inputText3"></xp:message>
숫자가 아닌 값을 입력 상자에 입력하는 경우, 오류 표시에 다음 메시지가 표시됩니다.
이 필드는 올바른 숫자가 아닙니다.

messages - 오류 표시

페이지에 있는 모든 제어의 오류 메시지를 표시합니다.

카테고리
코어 제어
구문
<xp:messages attributes>content</xp:messages>
표 47. 필수 특성
특성 설명
id 기본값 message1, message2 등을 지정합니다.
layout 레이아웃은 목록(기본값) 또는 테이블이 될 수 있습니다.
표 48. 모든 특성
카테고리 특성
내게 필요한 옵션 role, title
기본사항 attrs, binding, dir, globalOnly, id, lang, loaded, rendered, rendererType
형식 layout, showDetail, showSummary, tooltip
스타일 disableTheme, errorClass, errorStyle, fatalClass, fatalStyle, infoClass, infoStyle, style, styleClass, themeId, warnClass, warnStyle
사용법
기본적으로 대부분의 유효성 검증 검사는 서버로 요청을 보내기 전에 클라이언트에서 발생합니다. 유효성 검증에 실패하는 경우 클라이언트는 대화 상자에 오류 메시지를 표시하고 서버 요청을 취소합니다.

서버에서 유효성 검증 검사가 발생하고 이 메시지에 오류 메시지가 표시되는 경우에는 해당 제어 대상의 disableClientSideValidationtrue로 설정해야 합니다.

예제
다음은 숫자 데이터에 바인드된 입력 상자이며 클라이언트 측에서 유효성을 검증하지 않습니다. 다음은 입력 상자의 오류 표시입니다.
<xp:inputText id="inputText3" value="#{document1.number}"
	disableClientSideValidation="true">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
<xp:message id="message1" for="inputText3"></xp:message>
숫자가 아닌 값을 입력 상자에 입력하는 경우, 오류 표시에 다음 메시지가 표시됩니다.
이 필드는 올바른 숫자가 아닙니다.

pager - 페이저

데이터를 하나의 창에 표시할 수 없는 컨테이너 제어에 데이터의 페이지 수를 표시합니다.

카테고리
코어 제어
구문
<xp:pager attributes>
	<xp:pagerControl attributes></xp:pagerControl> <!--if custom for page style-->
content</xp:pager>
표 49. 필수 특성
특성 설명
id (pager) 기본값 pager1, pager2 등을 지정합니다.

(pagerControl) 기본값 pagerControl1, pagerControl2 등을 지정합니다.

layout (pager) 제어를 배치하려면 이 특성을 사용하거나 pagerControl 제어를 임베드하십시오.
for (pager) 페이저가 대상 제어 내에 없는 경우에만 사용하십시오.
type (pagerControl) 이 유형은 페이저에서 페이저 스타일사용자 정의를 사용하는 경우 생성됩니다.
표 50. 모든 특성(pager)
카테고리 특성
내게 필요한 옵션 ariaLabel, role, title
참고: role 특성은 9.0.1 이상에서는 더 이상 사용하지 않습니다. 기본적으로 적절한 준수 값이 생성됩니다. 내게 필요한 옵션 표준을 준수하기 위해서는 이 특성에 대해 값을 지정하지 마십시오.
기본사항 attrs, alwaysCalculateLast, binding, dir, for, id, lang, loaded, pageCount, partialExecute, partialRefresh, rendered, rendererType
형식 layout, panelPosition
스타일 disableTheme, outerStyleClass, style, styleClass, themeId
표 51. 모든 특성(pagerControl)
카테고리 특성
내게 필요한 옵션 accesskey, alt, role, tabindex, title
참고: role 특성은 9.0.1 이상에서는 더 이상 사용하지 않습니다. 기본적으로 적절한 준수 값이 생성됩니다. 내게 필요한 옵션 표준을 준수하기 위해서는 이 특성에 대해 값을 지정하지 마십시오.
기본사항 binding, dir, id, lang, loaded, rendered, rendererType, type, value
이벤트 action, actionListener, actionListeners, immediate, onblur, onclick, ondblclick, onfocus, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
형식 image
스타일 currentStyleClass, disableTheme, firstStyleClass, lastStyleClass, style, styleClass, themeId
사용법
런타임 시, 사용자는 페이저를 클릭하여 보기 패널과 같이 데이터 반복을 허용하는 제어에서 데이터를 반복할 수 있습니다.

페이저는 데이터가 있는 제어의 패싯 영역에 배치될 수 있습니다. 또한 페이저는 for 특성을 통해 데이터 제어와 연관될 수도 있습니다.

페이저 제어는 두 가지 방법으로 생성됩니다.
  • layout 특성 지정. 디자인 모드에서 특성 아래의 맨 위 탭을 클릭하고 페이저 스타일에 대한 샘플 옵션 중 하나를 선택하십시오.
  • pagerControl 제어 임베드. 디자인 모드에서 특성 아래의 맨 위 탭을 클릭하고 페이저 스타일에 대해 사용자 정의를 선택하십시오.
예제
이 보기 패널 제어에는 페이저 제어가 있습니다.
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true"
			layout="Previous Separator Group Separator Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject"
			id="viewColumnHeader1">
		</xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

pagerControl - 페이저 하위 제어

공통 페이저 내에 페이저 제어를 지정합니다.

카테고리
컨테이너 제어
사용법
pager를 참조하십시오.

panel - 패널

공통 데이터 소스 및 특성이 있는 다른 제어 및 텍스트의 컨테이너로 동작합니다.

카테고리
컨테이너 제어
구문
<xp:panel attributes>content</xp:panel>
표 52. 모든 특성
카테고리 특성
내게 필요한 옵션 role, title
기본사항 attrs, binding, dir, id, loaded, rendered, rendererType, tagName
데이터 acl, data, dataContexts, readonly
dojo dojoAttributes, dojoType
이벤트 onClientLoad
스타일 disableTheme, outerStyleClass, style, styleClass, themeId
사용법
런타임 시, 페이지에 지정된 모든 데이터 소스 및 특성으로 패널의 컨텐츠가 표시됩니다.
예제
이 패널 제어는 데이터 소스를 정의하며 텍스트 및 편집 상자를 포함합니다.
<xp:panel style="height:60.0px;width:408.0px">
	<xp:this.data>
		<xp:dominoDocument var="document2" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText2" value="#{document2.phoneday}"></xp:inputText>
	day phone	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document2.phonenight}"></xp:inputText>
	night phone
</xp:panel>

paragraph - 단락

텍스트를 단락 형식으로 조합합니다.

카테고리
기타 제어
구문
<xp:paragraph attributes>content</xp:paragraph>
표 53. 필수 특성
특성 설명
id 기본값 paragraph1, paragraph2 등을 지정합니다.
표 54. 모든 특성
카테고리 특성
내게 필요한 옵션 role, title
기본사항 attrs, binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
이벤트 onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
스타일 disableTheme, style, styleClass, themeId
사용법

런타임 시, 단락의 컨텐츠는 지정된 특성으로 페이지에 나타납니다.

예제
이 단락 제어는 굵은체의 텍스트 단락을 작성합니다.
<xp:paragraph id="paragraph1" style="font-weight:bold>Now is the time.</xp:paragraph>

platformEvent - 플랫폼 이벤트 제어

플랫폼 이벤트를 처리합니다.

카테고리
기타 제어
구문
<xp:platformEvent attributes>content</xp:platformEvent>
표 55. 필수 특성
특성 설명
id 기본값 platformEvent1, platformEvent2 등을 지정합니다.
표 56. 모든 특성
카테고리 특성
기본사항 binding, eventName, id, lang, loaded, rendered, rendererType
  onevent
스타일 disableTheme, themeId
사용법

플랫폼 이벤트는 Notes 클라이언트에서 컴포지트 애플리케이션 이벤트를 공개하는 데 사용됩니다.

radio - 단일 선택 단추

선택하거나 지울 수 있는 단추를 표시합니다. 그룹화될 때 그룹 내에서 하나의 단추만 선택할 수 있습니다.

카테고리
코어 제어
구문
<xp:radio attributes>content</xp:radio>
표 57. 필수 특성
특성 설명
id 기본값 radio1, radio2 등을 지정합니다.
text 레이블을 제공합니다.
value 데이터 요소 또는 기타 값에 제어를 바인드합니다.
selectedValue 단추가 선택된 경우 데이터 값을 지정합니다.
defaultSelected 기본적으로 단추를 선택하도록 true를 지정합니다.
groupName 그룹에 단일 선택 단추를 지정합니다.
skipContainers 다른 컨테이너에 있는 단일 선택 단추(예: 데이터 테이블의 열)를 동일한 그룹에 지정합니다.
사용법
런타임 시, 페이지에 단추가 표시됩니다. 사용자가 선택하거나 선택 취소할 수 있습니다. 선택하면 단추가 채워진 것으로 표시됩니다.

한 단추가 선택되면 동일한 그룹에 지정된 다른 모든 단추는 지워집니다.

그룹에 단추를 지정하는 것은 단일 선택 단추 그룹 제어를 작성하는 것과 유사합니다. 그룹을 지정하여 개별 단추를 사용하면 배치에 유연성을 제공합니다.

내게 필요한 옵션 준수를 위해 이 제어를 그룹에 사용하지 않고 단일 단추에만 사용해야 합니다. 그룹에는 단일 선택 단추 그룹을 사용하십시오.

예제
다음 단일 선택 단추 제어는 선택에 따라 값 apples 또는 orangesdocument1.fruit에 지정합니다. 단추는 하나만 선택할 수 있습니다. Apples가 선택되면 oranges가 지워집니다. 이 예제는 내게 필요한 옵션 준수 요구사항을 충족하지 않습니다.
<xp:radio text="Apples" id="radio1" value="#{document1.fruit}"
	groupName="fruit" selectedValue="apples">
</xp:radio>
<xp:radio text="Oranges" id="radio2" value="#{document1.fruit}"
	groupName="fruit" selectedValue="oranges">
</xp:radio>

radioGroup - 단일 선택 단추 그룹

선택하거나 지울 수 있는 여러 단추를 표시합니다. 그룹 내에서 하나의 단추만 선택할 수 있습니다.

카테고리
코어 제어
구문
<xp:radioGroup attributes>content</xp:radioGroup>
표 59. 임베드된 제어
제어 설명
selectItem 사용자가 선택할 수 있는 하나의 항목을 제공합니다.
selectItems 사용자가 선택할 수 있는 하나 이상의 항목을 제공합니다.
표 60. 필수 특성
특성 설명
id 기본값 radioGroup1, radioGroup2 등을 지정합니다.
text 레이블을 제공합니다.
value 데이터 요소 또는 기타 값에 제어를 바인드합니다.
legend 화면 표시 그룹 설명을 제공합니다.
사용법
런타임 시, 페이지에 하나 이상의 단일 선택 단추가 표시됩니다. 사용자가 하나의 단추를 선택할 수 있습니다. 한 단추가 선택되면 선택된 다른 모든 단추는 지워집니다.

내게 필요한 옵션 준수를 위해 legend 특성을 지정해야 합니다.

예제
이 단일 선택 단추 그룹 제어는 선택할 수 있는 두 개의 항목을 제공합니다.
<xp:radioGroup id="radioGroup1" legend="Select fruit" value="#{document1.fruit}" layout="pageDirection">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:radioGroup>
이 단일 선택 단추 그룹 제어는 수식을 사용하여 선택할 수 있는 두 개의 항목을 제공합니다.
<xp:radioGroup id="radioGroup1" legend="Select fruit" value="#{document1.fruit}"
	layout="pageDirection">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:radioGroup>
이 선택란 그룹은 보기 열의 값에서 해당 항목 선택을 가져옵니다.
<xp:radioGroup id="radioGroup1" legend="Select fruit" value="#{document1.fruit}"
	layout="pageDirection">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:radioGroup>

repeat - 반복

데이터 소스를 통해 반복하여 임베드된 제어를 반복합니다.

카테고리
컨테이너 제어
구문
<xp:repeat attributes>
	contol ...
</xp:repeat>
표 62. 필수 특성
특성 설명
id 기본값 repeat1, repeat2 등을 지정합니다.
value 일반적으로 데이터 바인딩은 요소 콜렉션에 대한 것입니다(예: NotesDocumentCollection 오브젝트).
var 일반적으로 이 변수는 바인드된 데이터 콜렉션의 한 멤버를 참조합니다(예: NotesDocumentCollection 오브젝트에 대한 바인딩인 경우 NotesDocument 오브젝트).
표 63. 모든 특성
카테고리 특성
내게 필요한 옵션 role
기본사항 attrs, binding, dir, id, lang, loaded, removeRepeat, rendered, rendererType, repeatControls, rowAttrs
데이터 first, indexVar, rows, value, var
스타일 disableTheme, style, styleClass, themeId
사용법
런타임 시, 반복된 제어 컨텐츠가 페이지에 표시됩니다. 반복 제어의 컨텐츠에 var을 사용하여 각 데이터 소스 멤버의 컨텐츠를 반복하십시오.
예제
이 반복 제어는 현재 데이터베이스에 있는 모든 문서의 subject 항목을 표시합니다.
<xp:repeat id="repeat1" rows="30"
	value="#{javascript:return database.getAllDocuments()}" var="rowdoc"
	repeatControls="true">
	<xp:text escape="true" id="computedField1">
		<xp:this.value>
			<![CDATA[#{javascript:return rowdoc.getItemValueString("subject") + " "}]]>
		</xp:this.value>
	</xp:text>
</xp:repeat>

scriptBlock - 스크립트 출력

클라이언트 스크립트를 출력합니다.

카테고리
코어 제어
구문
<xp:scriptBlock attributes>content</xp:scriptBlock>
표 64. 필수 특성
특성 설명
id scriptBlock1, scriptBlock2 등으로 기본 설정됩니다.
value 클라이언트 스크립트를 지정합니다.
표 65. 모든 특성
카테고리 특성
기본사항 attrs, binding, charset, defer, id, loaded, rendered, rendererType, src, type
데이터 converter, value
dojo dojoArgs, dojoEvent
스타일 disableTheme, themeId
사용법
이 제어는 사용자 정의 제어에만 적용됩니다.

런타임에서 사용자 정의 제어가 포함된 XPage가 클라이언트에 로드될 때 스크립트가 실행됩니다.

예제
이 스크립트 출력 제어가 사용자 정의 제어에 있습니다. 이것은 XPage에 임베드되어 XPage가 열릴 때 alert 상자를 표시합니다.
<xp:scriptBlock id="scriptBlock2" type="text/javascript">
	<xp:this.value><![CDATA[alert("hello custom")]]></xp:this.value>
</xp:scriptBlock>

section - 섹션

다른 제어 및 텍스트의 경우, 접을 수 있는 컨테이너로 동작합니다.

카테고리
컨테이너 제어
구문
<xp:section attributes>content</xp:section>
표 66. 필수 특성
특성 설명
id 기본값 section1, section2 등을 지정합니다.
header 헤더는 섹션의 맨 위에 표시되며 섹션을 접어도 표시됩니다.
type 형식화 유형은 다음과 같습니다.
  • 기본: 테두리 없음
  • 가로: 아래에 회색 막대가 표시됨
  • 상자: 네 면 모두에 회색 막대가 표시됨
  • : 화살표에 대해 회색 배경이 표시되며 화살표 아래에 섹션 컨텐츠가 표시됨
initClosed 기본적으로 섹션은 처음에 열려 있습니다.
사용법
런타임 시, 페이지에 섹션이 표시됩니다.
  • 닫힌 섹션은 헤더만 표시합니다.
  • 열린 섹션은 헤더와 컨텐츠를 표시합니다.
사용자는 섹션을 열고 닫을 수 있습니다.
예제
이 섹션에는 두 개의 편집 상자가 있습니다.
<xp:section id="section1" header="Phone numbers" type="tab"
	initClosed="true">
	<xp:inputText id="inputText2" value="#{document1.phoneday}"></xp:inputText>day
	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document1.phonenight}"></xp:inputText>night
</xp:section>

selectItem - 선택 항목

사용자가 선택할 수 있는 항목을 제공합니다(예: 선택란).

카테고리
없음
구문
<xp:selectItem attributes>content</xp:selectItem>
표 68. 필수 특성
특성 설명
itemLabel 사용자에게 표시할 텍스트를 제공합니다. 필수입니다.
itemValue 사용자가 이 항목을 선택하는 경우 상위 제어의 값을 제공합니다. 필수입니다.
표 69. 모든 특성
카테고리 특성
기본사항 attrs, binding, id, itemDescription, itemDisabled, itemLabel, rendered, rendererType
데이터 itemValue, value
형식 disableTheme, themeId
사용법
다른 제어에 이 제어를 임베드하여 상위 제어의 항목 선택을 제공합니다.

디자인 모드에서 항목 선택을 포함할 제어에 초점을 두고 특성 아래의 탭을 클릭하십시오. 항목 추가목록 가져오기를 사용하여 selectItem 제어를 작성하십시오.

모든 특성 아래에서 항목 선택 특성을 보려면 소스 모드로 전환하고 임베드된 selectItem 제어에 초점을 두어야 합니다(상위 제어와 반대).

예제
이 선택란 그룹 제어에는 선택할 수 있는 두 개의 항목이 있습니다.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItem itemLabel="Apples" itemValue="apples"></xp:selectItem>
	<xp:selectItem itemLabel="Oranges" itemValue="oranges"></xp:selectItem>
</xp:checkBoxGroup>

selectItems - 선택 항목

사용자가 선택할 수 있는 하나 이상의 항목을 제공합니다(예: 선택란).

카테고리
없음
구문
<xp:selectItems attributes>content</xp:selectItems>
표 70. 필수 특성
특성 설명
하나 이상의 설명 항목에 대해 레이블, 값, 설명 및 사용 안함 플래그를 제공합니다. 여기 값은 데이터 바인딩과 다릅니다.
표 71. 모든 특성
카테고리 특성
기본사항 attrs, binding, id, loaded, rendered, rendererType
데이터
형식 disableTheme, themeId
사용법
이 제어를 다른 제어에 임베드하여 상위 제어의 항목 선택을 제공합니다.

디자인 모드에서 항목 선택을 포함할 제어에 초점을 두고 특성 아래의 탭을 클릭하십시오. 수식 항목 추가를 사용하여 selectItems 제어를 작성하십시오.

모든 특성 아래에서 항목 선택 특성을 보려면 소스 모드로 전환하고 임베드된 selectItems 제어에 초점을 두어야 합니다(상위 제어와 반대).

값 수식은 배열을 리턴해야 합니다. 배열의 각 요소는 다음과 같이 형식화된 단일 선택 항목을 정의해야 합니다.
label|value|description|disabled
여기서, label만 필수입니다. 세로 막대는 구문의 일부입니다.

value가 지정되지 않으면 기본값 label이 됩니다. 선택 항목을 사용하지 않으려면(사용 안함) disabledtrue로 지정하십시오.

리턴 값에 대해서는 @DbColumn 또는 @DbLookup의 결과를 확대(@Explode)할 수 있습니다.

예제
이 선택란 그룹 제어에는 선택할 수 있는 두 개의 항목이 있습니다.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples", "Oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
이 선택란 그룹 제어는 레이블과 값에 다른 이름을 사용합니다.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
이 선택란 그룹 제어는 첫 번째 선택이 사용되지 않도록 설정합니다.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:return new Array("Apples|apples||true", "Oranges|oranges")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>
이 선택란 그룹은 보기 열의 값에서 해당 항목 선택을 가져옵니다.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

span - 스팬 컨텐츠

텍스트를 결합합니다(일반적으로 특성을 적용하는 경우).

카테고리
코어 제어
구문
<xp:span attributes>content</xp:span>
표 72. 모든 특성
카테고리 특성
내게 필요한 옵션 role, title
기본사항 attrs, binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
이벤트 onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
스타일 disableTheme, style, styleClass, themeId
사용법

런타임 시, 스팬 컨텐츠가 지정된 특성으로 페이지에 표시됩니다.

일반적으로 이 제어는 직접 적용할 수 없습니다. 페이지에서 텍스트를 강조 표시하고 굵은체와 같은 특성을 적용하면 스팬이 자동으로 작성됩니다.

공간에 대해 직접 작업하려면 소스 모드가 가장 좋습니다.

예제
다음은 굵은체에 사용된 스팬 제어입니다.
<xp:span id="span1" style="font-weight:bold">
	Now is the time.
</xp:span>

tabbedPanel - 탭 패널

다른 제어 및 텍스트에 대한 컨테이너 콜렉션으로 동작합니다.

카테고리
컨테이너 제어
구문
<xp:tabbedPanel attributes>
	<xp:tabPanel attributes>content</xp:tabPanel></xp:tabbedPanel>
	...
</xp:tabbedPanel>
표 73. 필수 특성
특성 설명
id (tabbedPanel) 기본값 tabbedPanel1, tabbedPanel2 등을 지정합니다.

(tabPanel) 기본값 tabPanel1, tabPanel2 등을 지정합니다.

selectedTab (tabbedPanel) 처음에 탭 패널을 이 탭으로 엽니다.
text (tabPanel) 탭의 레이블을 제공합니다.
표 74. 모든 특성(tabbedPanel)
카테고리 특성
내게 필요한 옵션 role, title
참고: role 특성은 9.0.1 이상에서는 더 이상 사용하지 않습니다. 기본적으로 적절한 준수 값이 생성됩니다. 내게 필요한 옵션 표준을 준수하기 위해서는 이 특성에 대해 값을 지정하지 마십시오.
기본사항 attrs, binding, dir, id, lang, loaded, rendered, rendererType, selectedTab
스타일 containerStyleClass, disableTheme, outerStyleClass, style, styleClass, themeId
표 75. 모든 특성(tabPanel)
카테고리 특성
내게 필요한 옵션 imageAlt, role, title
참고: role 특성은 9.0.1 이상에서는 더 이상 사용하지 않습니다. 기본적으로 적절한 준수 값이 생성됩니다. 내게 필요한 옵션 표준을 준수하기 위해서는 이 특성에 대해 값을 지정하지 마십시오.
기본사항 binding, dir, href, id, image, label, lang, loaded, rendered, rendererType
이벤트 onClick
스타일 contentStyleClass, disableTheme, endTabStyleClass, middleTabStyleClass, selectedTabStyleClass, startTabStyleClass, style, styleClass, themeId, unselectedTabStyleClass
사용법
런타임 시, 선택된 탭 패널의 컨텐츠가 페이지에 표시됩니다. 다른 탭을 볼 수 있지만 해당 컨텐츠는 볼 수 없습니다. 사용자는 탭을 선택하여 패널을 변경합니다.
디자인 모드에서 탭 패널에 초점을 두면 tabbedPanel 요소가 선택됩니다. tabPanel 요소에 대해 작업하려면 마우스 오른쪽 단추로 클릭하거나 메뉴를 사용하여 다음을 수행하십시오.
  • 활성 탭 컨텐츠 선택은 초점이 있는 탭의 tabPanel 요소에 초점을 둡니다.
  • 활성 탭 제거는 초점이 있는 탭의 tabPanel 요소를 제거합니다.
  • 탭 삽입은 새 tabPanel 요소를 삽입합니다.
  • 탭 추가는 새 tabPanel 요소를 추가합니다.
예제
이 탭 패널 제어에는 두 개의 패널이 있습니다.
<xp:tabbedPanel id="tabbedPanel1" selectedTab="tabPanel1">
	<xp:tabPanel id="tabPanel1" label="Day">
		<xp:inputText id="inputText2"
			value="#{document1.phoneday}">
		</xp:inputText>
	</xp:tabPanel>
	<xp:tabPanel label="Night" id="tabPanel2">
		<xp:inputText id="inputText3"
			value="#{document1.phonenight}">
		</xp:inputText>
	</xp:tabPanel>
</xp:tabbedPanel>

table - 테이블

행과 열로 배열된 셀을 포함합니다. 각 셀에는 다른 제어(테이블 포함) 및 텍스트가 있을 수 있습니다.

카테고리
컨테이너 제어
구문
<xp:table attributes>
	<xp:tr attributes>
			<xp:td attributes>cell content</xp:td>
			...
	</xp:tr>
	...
</xp:table>
표 77. 모든 특성(tr)
카테고리 특성
내게 필요한 옵션 role, title
기본사항 binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
이벤트 onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
형식 align, valign
스타일 disableTheme, style, styleClass, themeId
표 78. 모든 특성(td)
카테고리 특성
내게 필요한 옵션 role, title
기본사항 binding, dir, id, lang, loaded, rendered, rendererType
dojo dojoAttributes, dojoType
이벤트 onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup
형식 align, colspan, rowspan, valign
스타일 disableTheme, style, styleClass, themeId
사용법
런타임 시, 페이지에 테이블이 표시됩니다. 사용자는 테이블에서 한 번에 하나의 셀에 액세스할 수 있습니다.
디자인 모드에서 XPage에 테이블을 삽입하면 대화 상자가 표시되고 행 수와 열 수를 요청합니다. 테이블을 작성한 후 다음을 수행할 수 있습니다.
  • 행과 열 추가 및 삭제
  • 셀 병합
  • 셀 및 다중 셀 선택
  • 셀 컨텐츠 추가 및 삭제

시각적으로 표현되는 레이아웃에 텍스트 및 이미지를 제공하려면 이 제어를 사용하십시오. 기본적으로 role 특성은 presentation입니다. 내게 필요한 옵션 준수를 위해 시각적 레이아웃 이외의 목적으로 이 제어를 사용하지 않아야 하며 rolepresentation이 아닌 다른 특성으로 변경하지 마십시오. 테이블 데이터의 경우 데이터 테이블 제어를 사용하십시오.

예제
이 테이블에는 2행과 2열로 배열된 4개의 셀이 있습니다.
<xp:table>
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

text - 계산된 필드

값을 표시합니다.

카테고리
코어 제어
구문
<xp:text attributes>content</xp:text>
표 79. 필수 특성
특성 설명
id 기본값 computedField1, computedField2 등을 지정합니다.
value 계산된 필드를 데이터 요소 또는 기타 값에 바인드합니다.
표 80. 모든 특성
카테고리 특성
내게 필요한 옵션 role, title
기본사항 attrs, binding, dir, escape, for, htmlFilter, id, lang, loaded, rendered, rendererType, tagName
데이터 converter, value
형식 contentType
스타일 disableTheme, outerStyleClass, style, styleClass, themeId
사용법

런타임 시, 페이지에 계산된 필드의 값이 표시됩니다.

예제
이 계산된 필드 제어는 두 범위 변수의 합계를 표시합니다.
<xp:text escape="true" id="computedField1"
	value="#{javascript:return requestScope.number1 + requestScope.number2}">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:text>
이 계산된 필드 제어는 현재 XPage에 바인드된 데이터 요소의 값을 표시합니다.
<xp:text escape="true" id="computedField4" value="#{document1.subject}"></xp:text>

typeAhead - AJAX 자동 완성 기능

지정된 제안 단어와 일치하는 후속 문자를 사용자가 입력함에 따라 자동으로 상위 제어를 채웁니다.

카테고리
기타 제어
구문
<xp:typeAhead attributes>content</xp:typeAhead>
표 81. 필수 특성
특성 설명
mode 새로 고침 모드입니다.
minChars 자동 완성 기능을 트리거하는 최소 문자 수입니다.
valueList 시작 문자들이 입력될 때 제안이 리턴됩니다.
valueListSeparator 제안 구분 기호입니다.
tokens 사용자 머신이 제안을 지정하는 경우 클라이언트 구분 기호입니다.
ignoreCase 대소문자 구분 여부입니다.
사용법
다른 제어에 이 제어를 임베드하여 상위 제어의 입력에 영향을 미칩니다.

디자인 모드에서, 자동 완성 기능을 구현할 제어에 초점을 둔 후 특성 아래의 자동 완성 기능 탭을 클릭하십시오. 자동 완성 기능 사용을 선택하면 현재 제어에 자동 완성 기능 제어가 임베드됩니다.

모든 특성 아래에서 자동 완성 기능 특성을 보려면 소스 모드로 전환하고 임베드된 typeAhead 제어에 초점을 두어야 합니다(상위 제어와 반대).

예제
이 편집 상자 제어는 자동 완성 기능을 제공합니다.
<xp:inputText id="inputText1" value="#{document1.subject}">
	<xp:typeAhead mode="full" minChars="1"
	valueList="alpha#beta#charlie#delta#echo#foxtrot"
	valueListSeparator="#" tokens=",/" ignoreCase="true">
</xp:typeAhead></xp:inputText>

view - XPage

최상위 레벨 컨테이너 제어(즉, XPage 자체)를 정의합니다.

카테고리
없음
모든 특성
사용법
런타임 시, 페이지가 로드될 때 페이지 특성이 적용됩니다.

페이지 특성을 보려면 디자인 모드에서 초점을 페이지에서 제어에 속하지 않는 부분에 놓으십시오.

예제
이 XPage는 데이터 소스를 정의하며 편집 상자와 단추를 포함합니다.
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1"
		value="#{document1.subject}" style="font-weight:bold">
	</xp:inputText>
	<xp:button value="submit" id="button1" 	style="font-weight:bold">
		<xp:eventHandler event="onclick"
			submit="true" refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
	</xp:button>
</xp:view>

viewPanel - 보기

문서의 데이터를 행과 열로 표시합니다.

카테고리
컨테이너 제어
구문
<xp:viewPanel attributes>
	<xp:this.facets>
		<xp:pager attributes></xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView attributes></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn attributes">
		<xp:viewColumnHeader attributes></xp:viewColumnHeader>
	</xp:viewColumn>
	...
</xp:viewPanel>
표 84. 필수 특성
특성 설명
id (viewPanel) 기본값 viewPanel1, viewPanel2 등을 지정합니다.

(viewColumn) 기본값 viewColumn1, viewColumn2 등을 지정합니다.

(viewColumnHeader) 기본값 viewColumnHeader1, viewColumnHeader2 등을 지정합니다.

rows (viewPanel) 한 번에 표시되는 행 수이며 기본값은 30입니다.
data (viewPanel) 제어에 Domino 보기를 바인드합니다.
pageName (viewPanel) 열 항목이 링크인 경우 선택한 문서를 여는 데 기본적으로 문서 형식에 연관된 XPage가 사용됩니다. 여기에서 지정된 XPage를 사용할 수 있습니다.
columnName (viewColumn) 데이터 소스의 열 이름이 보기 작성 대화 상자를 통해 설정되며 나중에 변경할 수 있습니다.
displayAs, (viewColumn) 기본적으로 항목이 텍스트로 표시됩니다. 이 항목을 기본 문서 링크로 변경하려면 displayAs="link"를 지정하십시오.
value (viewColumnHeader) 열 헤더의 레이블입니다.
표 85. 모든 특성(viewPanel)
카테고리 특성
내게 필요한 옵션 caption, role, summary, title
참고: role 특성은 9.0.1 이상에서는 더 이상 사용하지 않습니다. 기본적으로 적절한 준수 값이 생성됩니다. 내게 필요한 옵션 표준을 준수하기 위해서는 이 특성에 대해 값을 지정하지 마십시오. 내게 필요한 옵션 준수에 대한 자세한 정보는 사용법 섹션을 참조하십시오.
기본사항 attrs, binding, dir, id, lang, loaded, partialExecute, partialRefresh, refreshId, rendered, rendererType, rowAttrs, target
데이터 data, first, indexVar, pageName, rows, value, var
형식 cellpadding, cellspacing, height, showColumnHeader, showUnreadMarks, width
스타일 captionStyleClass, columnClasses, dataTableStyle, dataTableStyleClass, disableTheme, readMarksClass, rowClasses, themeId, unreadMarksClass, viewStyle, viewStyleClass
표 86. 모든 특성(viewColumn)
카테고리 특성
내게 필요한 옵션 role
기본사항 attrs, binding, columnName, displayAs, htmlFilter, id, loaded, rendered, rendererType, width
데이터 converter, openDocAsReadonly, pageUrl, value
이벤트 onClick
형식 collapsedImage, contentType, expandedImage, iconAlt, iconSrc, indentResponses, showCheckbox
스타일 disableTheme, style, styleClass, themeId
표 87. 모든 특성(viewColumnHeader)
카테고리 특성
내게 필요한 옵션 role
기본사항 attrs, binding, htmlFilter, id, loaded, rendered, rendererType, sortable, value
형식 contentType, iconAlt, iconSrc, showCheckbox
스타일 disableTheme, style, styleClass, themeId
페이저
페이저를 포함하는 패싯 영역은 디자인 스펙에 따라 보기의 일부입니다. 다른 제어(예: 패널)를 패싯 영역에 놓을 수 있습니다. 패싯 영역 내에서 작업하려면 소스 모드를 사용하십시오.

다음은 페이저 제어에 대한 샘플 패싯입니다.

	<xp:this.facets>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="headerPager" id="pager1">
	</xp:pager>
	<xp:viewTitle xp:key="viewTitle" id="viewTitle1" value="View Title"></xp:viewTitle>
	<xp:pager partialRefresh="true" layout="Previous Group Next"
		xp:key="footerPager" id="pager2">
	</xp:pager>
</xp:this.facets>
특성 아래의 표시 탭에 있는 다음 상자는 다음과 같은 패싯 컨텐츠에 영향을 미칩니다.
  • 헤더에 페이저 표시(기본적으로 선택됨)는 headerPager 키의 pager 제어를 생성합니다. 이 상자가 지워져 있으면 패싯 영역이 생성되지 않습니다.
  • 푸터에 페이저 표시(기본적으로 지워짐)는 footerPager 키의 pager 제어를 생성합니다.
  • 제목 표시(기본적으로 지워짐)는 viewTitle 제어를 생성합니다.
사용법
보기 제어는 본래 Domino 보기를 표시합니다. viewPanel 제어를 작성하는 경우 디자인 모드에서 대화 상자에 바인드된 Domino 보기의 이름 및 기타 정보를 제공하십시오. 작성한 후에 마우스 오른쪽 단추를 클릭하거나 메뉴를 사용하여 열을 삽입, 추가 및 삭제할 수 있습니다.

데이터의 카테고리를 표시하도록 보기를 구성할 때 사용자는 런타임시 카테고리를 펼치고 접을(토글할) 수 있습니다. 기본적으로 카테고리는 접혀 있습니다. 사용자가 카테고리를 토글하는 경우 XPage가 다시 로드되어 XPage의 데이터가 서버와 동기화를 유지합니다.

페이징의 경우, 접힌 카테고리는 한 행으로 계산됩니다. 예를 들어, 다섯 개의 행을 볼 수 있도록 페이저를 구성했고 보기에 다섯 개의 접힌 데이터 행이 있는 경우, 사용자가 뒤로 또는 앞으로 단추를 클릭할 때마다 페이저는 숨겨진 개별 행이 아니라 다섯 개의 카테고리로 계산합니다. 사용자가 이전 및 다음 데이터 페이지를 탐색해도 카테고리의 토글 상태는 지속됩니다.

이러한 제어는 내게 필요한 옵션의 최신 표준에 대해 테스트되지 않았습니다. 권장되는 액세스 가능 경로는 데이터 보기 제어입니다.

예제
이 보기 패널 제어에는 두 개의 열이 있습니다.
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

특성 참조

XPage 특성이 여기에서 지정됩니다.

accept - 허용

업로드된 파일에 대해 허용 가능한 MIME 유형을 나열합니다.

카테고리
기본사항
구문
accept="text/html|image/png|image/gif|video/mpeg|text/css|audio/basic"
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 허용을 찾으십시오.

기본적으로 모든 MIME 유형이 허용 가능합니다.

accesskey - 단축키

ALT 키와 결합하여 사용되어 제어에 초점을 놓는 문자를 지정합니다.

카테고리
내게 필요한 옵션
구문
accesskey="key"
사용법
디자인 모드에서 특성 아래의 맨 위 탭을 클릭하고 단축키를 찾거나 모든 특성을 클릭하고 내게 필요한 옵션 아래의 액세스 키를 찾으십시오.

키보드 조합 제공은 키보드를 사용하여 탐색하려는 사용자와 HTML accesskey 속성에 의존하는 시각 장애인에게도 유용합니다. 단축키 제한에 대해서는 브라우저 문서를 참조하십시오.

예제
이 편집 상자 제어는 사용자가 ALT > b를 입력하는 경우에 선택됩니다.
<xp:inputText id="inputText1" value="#{document1.subject}" accesskey="b"></xp:inputText>

acl - 액세스 제어 목록

페이지 또는 제어에 대한 액세스 제어 목록을 정의합니다.

카테고리
데이터
구문
<xp:this.acl>
	<xp:acl loaded="true|false">
		<xp:this.entries>
			<xp:aclEntry attributes fullName="name" name="name"
				right="NOACCESS|READER|EDITOR"
				type="USER|GROUP|ROLE|ORGUNIT|ORGROLE|DEFAULT|ANONYMOUS"
				loaded="true|false">
			</xp:aclEntry>
			...
		</xp:this.entries>
	</xp:acl>
</xp:this.acl>
사용법
디자인 모드에서 초점이 페이지 또는 컨테이너 제어에 있는지 확인하십시오. 모든 특성을 클릭하고 데이터 아래에서 acl을 찾으십시오.

이 특성은 페이지 및 일부 컨테이너 제어에 적용됩니다.

포함된 특성
loaded="true|false"
제어가 로드될 때 태그 인스턴스를 작성하거나 작성하지 않습니다.
fullName="name"
name이 전체 이름이 아닌 경우 사용자의 전체 이름을 지정합니다.
name="name"
항목의 이름을 지정합니다.
right="NOACCESS|READER|EDITOR"
항목에 대한 액세스 권한을 정의합니다.
type="USER|GROUP|ROLE|ORGUNIT|ORGROLE|DEFAULT|ANONYMOUS"
항목의 유형을 정의합니다.
loaded="true|false"
항목이 로드될 때 태그 인스턴스를 작성하거나 작성하지 않습니다.
예제
이 패널은 두 개의 항목이 있는 ACL을 정의합니다.
<xp:panel style="height:60.0px;width:408.0px">
	<xp:this.data>
		<xp:dominoDocument var="document2" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:this.acl>
		<xp:acl>
			<xp:this.entries>
				<xp:aclEntry name="CN=Mary Moffit/O=IBM"
					right="EDITOR" type="USER">
				</xp:aclEntry></xp:aclEntry>
				<xp:aclEntry name="John Jordon/O=IBM" right="READER"
					type="USER">
				</xp:aclEntry>
			</xp:this.entries>
		</xp:acl>
	</xp:this.acl>
	<xp:inputText id="inputText2" value="#{document2.phoneday}"></xp:inputText>
		day phone	<xp:br></xp:br>
	<xp:inputText id="inputText3" value="#{document2.phonenight}"></xp:inputText>
		night phone
</xp:panel>

action - 애플리케이션 조치

사용자가 제어를 활성화할 때 호출할 MethodBinding 애플리케이션 조치를 지정합니다.

카테고리
이벤트
구문
action="action"
사용법
action 값은 매개변수를 받지 않고 문자열을 리턴하는 공용 메소드여야 합니다. 문자열은 이 애플리케이션의 NavigationHandler로 전달됩니다.

actionListener - 조치 리스너

사용자가 제어를 활성화할 때 알릴 MethodBinding 조치 리스너를 지정합니다.

카테고리
이벤트
구문
actionListener="listener"
사용법
actionListener 값은 ActionEvent 매개변수를 받고 void를 리턴하는 공용 메소드입니다.

actionListeners - 조치 리스너 목록

조치 리스너의 콜렉션을 지정합니다.

카테고리
이벤트
구문
<xp:this.actionListeners>
	<xp:actionListener type="javaclass"></xp:actionListener>
	...
</xp:this.actionListeners>

afterPageLoad - 페이지 로드 이후 메소드 바인딩

페이지 로드 이후 이벤트 핸들러를 활성화합니다.

카테고리
이벤트
구문
<xp:view><xp:this.afterPageLoad attributes>content</xp:afterPageLoad></xp:view>
사용법
이벤트 핸들러 구문에 대한 자세한 정보는 eventHandler - 이벤트 핸들러(특성)를 참조하십시오.

afterRenderResponse - 응답 렌더 이후 메소드 바인딩

JSF 순환 응답 렌더 단계 이후에 이벤트 핸들러를 활성화합니다.

카테고리
이벤트
구문
<xp:view><xp:this.afterRenderResponse attributes>content</xp:afterRenderResponse></xp:view>
사용법
이벤트 핸들러 구문에 대한 자세한 정보는 eventHandler - 이벤트 핸들러(특성)를 참조하십시오.

afterRestoreView - 보기 복원 이후 메소드 바인딩

JSF 순환 보기 복원 단계 이후에 이벤트 핸들러를 활성화합니다.

카테고리
이벤트
구문
<xp:view><xp:this.afterRestoreView attributes>content</xp:afterRestoreView></xp:view>
사용법
이벤트 핸들러 구문에 대한 자세한 정보는 eventHandler - 이벤트 핸들러(특성)를 참조하십시오.

align - 맞춤

컨테이너의 컨텐츠를 맞춥니다.

카테고리
형식
구문
align="left|center|right"
사용법
디자인 모드에서 모든 특성을 클릭하고 형식 아래에서 align을 찾으십시오.

allowDelete - 파일 삭제 허용

사용자가 첨부 파일을 삭제하도록 허용하거나 허용하지 않습니다.

카테고리
기본사항
구문
allowDelete="true|false"
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 allowDelete를 찾으십시오.

기본적으로 제어가 로드됩니다.

alt - 대체 텍스트

이미지를 렌더링할 수 없는 경우 표시할 텍스트를 지정합니다.

카테고리
내게 필요한 옵션
구문
alt="text"
사용법
디자인 모드에서 특성을 클릭하고 대체 텍스트를 찾거나 모든 특성을 클릭하고 내게 필요한 옵션 아래의 alt를 찾으십시오.

alwaysCalculateLast - 항상 최종 계산

항상 컨테이너의 최종 문서를 계산합니다.

카테고리
기본사항
구문
alwaysCalculateLast="true|false"
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 alwaysCalculateLast를 찾으십시오.

이 값을 true로 설정하면 성능에 영향을 미칠 수 있습니다.

ariaLabel - ARIA 레이블(특성)

제어에 대한 보조 기술 레이블의 설명 텍스트를 지정합니다.

참고: 이 특성은 릴리스 9.0.1의 새 특성입니다.
카테고리
내게 필요한 옵션
구문
ariaLabel="text"
사용법
디자인 모드에서 모든 특성을 클릭하고 accessibility 아래에서 ariaLabel을 찾으십시오.

attrs - 속성 목록

제어에 속성을 추가합니다. 속성을 특성으로 사용할 수 없는 곳에서 이 특성을 사용하십시오.

카테고리
기본사항
구문
<xp:this.attrs>
	<xp:attr attributename="attributevalue" ...</xp:attr>
	...
</xp:this.attrs>
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 attrs를 찾으십시오.
속성
최소한 namevalue를 설정해야 합니다.
표 88. 속성
속성 설명
loaded="true|false"
페이지가 로드될 때 속성을 작성할지 여부입니다(기본값은 true).
minimized="true|false"
HTML의 속성을 최소화하여 이름만 렌더링하고 값은 렌더링하지 않을지 여부입니다(기본값은 false).
name="name"
유효한 HTML 속성의 이름입니다.
rendered="true|false"
속성을 렌더링할지 여부입니다(기본값은 true).
uri="true|false"
value를 URI로 처리할지 여부입니다(기본값은 false). 프로토콜(예: http://)이 없는 URI 값은 현재 애플리케이션에 상대적입니다. URL 인코딩이 유효하므로 공백에 대해 %20을 사용하십시오.
value="value"
속성의 값입니다. minimized가 true이면 렌더링되지 않습니다.
사용법
이 특성은 제어 특성이 존재하지 않는 HTML 속성의 포함을 허용합니다. 제어 특성의 지정을 통해 생성될 수 있는 속성에 대해 attrs를 사용하지 마십시오.
예제
이 편집 상자는 해당 값을 렌더링하지 않고 autofocus 속성을 추가합니다.
<xp:inputText id="inputText3">
	<xp:this.attrs>
		<xp:attr name="autofocus" value="autofocus" minimized="true"></xp:attr>
	</xp:this.attrs>
</xp:inputText>
email 유형의 이 편집 상자는 placeholder 속성을 추가합니다.
<xp:inputText id="inputText3" type="email">
	<xp:this.attrs>
		<xp:attr name="placeholder" value="a@b.com"></xp:attr>
	</xp:this.attrs>
</xp:inputText>

autocomplete - 자동 완성

사용자 입력을 기억하고 자동으로 완성하는 브라우저 기능을 사용하거나 사용하지 않습니다.

카테고리
기본사항
구문
autocomplete="on|off"
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 autocomplete를 찾으십시오.

기본적으로 자동 완성이 사용됩니다.

예제
이 편집 상자 제어는 자동 완성을 사용하지 않습니다.
<xp:inputText id="inputText1" value="#{document1.subject}"
	title="Subject edit box" autocomplete="off">
</xp:inputText>

beforePageLoad - 페이지 로드 이전 메소드 바인딩

페이지 로드 이전에 이벤트 핸들러를 활성화합니다.

카테고리
이벤트
구문
<xp:view><xp:this.beforePageLoad attributes>content</xp:beforePageLoad></xp:view>
사용법
이벤트 핸들러 구문에 대한 자세한 정보는 eventHandler - 이벤트 핸들러(특성)를 참조하십시오.

beforeRenderResponse - 응답 렌더 이전 메소드 바인딩

JSF 순환 응답 렌더 단계 이전에 이벤트 핸들러를 활성화합니다.

카테고리
이벤트
구문
<xp:view><xp:this.beforeRenderResponse attributes>content</xp:beforeRenderResponse></xp:view>
사용법
이벤트 핸들러 구문에 대한 자세한 정보는 eventHandler - 이벤트 핸들러(특성)를 참조하십시오.

bgcolor - 배경색

배경색을 지정합니다.

카테고리
형식
구문
bgcolor="color"
사용법
디자인 모드에서 모든 특성을 클릭하고 형식 아래에서 bgcolor를 찾으십시오.

binding - 제어 바인딩

제어 특성에 제어를 바인드하는 표현식을 지정합니다.

카테고리
기본사항
구문
binding="expression"
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 binding을 찾으십시오.
예제

border - 테이블 외곽선

테이블 또는 제어 그룹 주위의 테두리 너비를 픽셀 단위로 지정합니다.

카테고리
형식
구문
border="n"
사용법
디자인 모드에서 모든 특성을 클릭하고 형식 아래에서 border를 찾으십시오.

기본적으로 제어 그룹에는 테두리가 없습니다(border="0").

예제
이 선택란 그룹은 16픽셀의 테두리를 사용합니다.
<xp:checkBoxGroup id="checkBoxGroup1" value="#{document1.fruit}"
	border="16">
	<xp:selectItems>
		<xp:this.value>
			<![CDATA[#{javascript:var list = @DbColumn("", "fruits", 1);
			return @Explode(list,",")}]]>
		</xp:this.value>
	</xp:selectItems>
</xp:checkBoxGroup>

caption - 캡션

컨테이너 제어 위에 캡션을 표시합니다.

카테고리
내게 필요한 옵션
구문
caption="caption"
사용법
디자인 모드에서 모든 특성을 클릭하고 내게 필요한 옵션 아래에서 캡션을 찾으십시오.

런타임 시, 사용자가 제어 위에 마우스 커서를 놓으면 상자에 제목이 표시됩니다.

예제
이 테이블에는 캡션이 있습니다.
<xp:table caption="Test caption">>
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

captionStyleClass - 캡션 CSS 스타일 클래스

테이블 캡션에 적용할 CSS 클래스 목록을 지정합니다.

카테고리
스타일
구문
captionStyleClass="name ..."
여기서, name은 클래스를 식별합니다. 공백을 사용하여 다중 클래스 이름을 구분하십시오.
사용법
디자인 모드에서 모든 특성을 클릭하고 스타일 아래에서 captionStyleClass를 찾으십시오.

cellpadding - 셀 채우기

테이블 셀 테두리와 컨텐츠 사이의 간격을 픽셀 단위로 지정합니다.

카테고리
형식
구문
cellpadding="n"
사용법
디자인 모드에서 모든 특성을 클릭하고 형식 아래에서 cellpadding을 찾으십시오.

기본적으로 제어 그룹에는 테두리가 없습니다(border="0").

예제
이 테이블 제어는 셀 간격과 채우기를 지정합니다.
<xp:table cellspacing="16" cellpadding="16">
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

cellspacing - 셀 간격

테이블 외곽선과 셀 사이 및 셀들 사이의 간격을 픽셀 단위로 지정합니다.

카테고리
형식
구문
cellspacing="n"
사용법
디자인 모드에서 모든 특성을 클릭하고 형식 아래에서 cellspacing을 찾으십시오.

기본적으로 제어 그룹에는 테두리가 없습니다(border="0").

예제
이 테이블 제어는 셀 간격을 지정합니다.
<xp:table cellspacing="16">
	<xp:tr>
		<xp:td>
			<xp:label id="label1" value="row 1, column 1"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 1, column 2" id="label3"></xp:label>
		</xp:td>
	</xp:tr>
	<xp:tr>
		<xp:td>
			<xp:label value="row 2, column 1" id="label2"></xp:label>
		</xp:td>
		<xp:td>
			<xp:label value="row 2, column 2" id="label4"></xp:label>
		</xp:td>
	</xp:tr>
</xp:table>

charset - 문자 세트

검색된 자원의 문자 인코딩을 지정합니다.

카테고리
기본사항
구문
charset="encoding"
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 charset를 찾으십시오.

checkedValue - 체크할 때의 값

제어를 선택할 때(선택 취소할 때와 반대) 바인드되는 데이터 요소의 값을 지정합니다.

카테고리
데이터
구문
checkedValue="value"
사용법
디자인 모드에서 특성 아래의 데이터를 클릭하고 선택할 때의 값을 찾거나 모든 특성을 클릭하고 데이터 아래에서 checkedValue를 찾으십시오.

이 특성은 선택하거나 선택 취소할 수 있는 제어(예: 선택란)에 적용되며 기본값은 문자열 true입니다.

예제
이 선택란 제어는 선택란이 선택(기본값)되었는지 또는 선택 취소되었는지에 따라 데이터 값을 지정합니다.
<xp:checkBox id="checkBox2" text="Use user name instead of Anonymous"
	defaultChecked="true" value="#{document1.loginname}" uncheckedValue="Anonymous"
	checkedValue="#{javascript:session.getUserName()}">
</xp:checkBox>

collapsedImage - 접혀진 섹션 이미지

접혀진 섹션의 이미지를 지정합니다.

카테고리
기본사항
구문
collapsedImage="pathname"
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 collapsedImage를 찾으십시오.

애플리케이션 자원의 경우 이미지 경로는 애플리케이션에 상대적입니다(예: /abook.gif).

cols - 열

표시할 열의 수를 지정합니다.

카테고리
기본사항
구문
cols="n"
사용법
디자인 모드에서 특성 아래의 맨 위 탭을 클릭하고 을 찾거나 모든 특성을 클릭하고 기본사항 아래에서 cols를 찾으십시오.

style 특성의 width 속성은 이 값을 겹쳐씁니다.

예제
이 다중 행 편집 상자 제어는 열 및 행의 수를 지정합니다.
<xp:inputTextarea id="inputTextarea1" value="#{document1.description}"
	cols="64" rows="8">
</xp:inputTextarea>

colspan - 열 스팬

현재 셀이 차지하는 열 수를 지정합니다.

카테고리
기본사항
구문
colspan="n"
여기서, n은 열 수이며 0은 열 그룹의 모든 열 스팬을 의미합니다.
사용법
디자인 모드에서 모든 특성을 클릭하고 형식 아래에서 colspan을 찾으십시오.

기본값은 1입니다.

columnClasses - 열 CSS 클래스

보기 또는 테이블 열에 적용할 CSS 클래스 목록을 지정합니다.

카테고리
스타일
구문
columnClasses="name ..."
여기서, name은 클래스를 식별합니다. 공백을 사용하여 여러 이름을 구분하십시오.
사용법
디자인 모드에서 모든 특성을 클릭하고 스타일 아래에서 columnClasses를 찾으십시오.

columnName - 열 이름

데이터 소스에서 기초 보기 열의 이름을 지정합니다.

카테고리
기본사항
구문
columnName="name"
여기서, name은 데이터 소스의 열 이름과 일치합니다.
사용법
디자인 모드에서 특성 아래의 데이터 탭을 클릭하고 열 보기를 찾거나 모든 특성을 클릭하고 기본사항 아래에서 columnName을 찾으십시오.

런타임 시, 상위 보기 열은 데이터 소스의 기초 열에 있는 데이터를 제공합니다.

데이터 소스의 열 이름과 일치하지 않는 값을 지정하면 런타임 시 오류가 발생합니다.

예제
이 보기 제어에는 데이터 소스의 subjectfruit 열을 기반으로 하는 두 열이 있습니다.
<xp:viewPanel rows="30" id="viewPanel1">
	<xp:this.facets>
		<xp:pager partialRefresh="true" layout="Previous Group Next"
			xp:key="headerPager" id="pager1">
		</xp:pager>
	</xp:this.facets>
	<xp:this.data>
		<xp:dominoView var="view2" viewName="main"></xp:dominoView>
	</xp:this.data>
	<xp:viewColumn columnName="subject" id="viewColumn1">
		<xp:viewColumnHeader value="subject" id="viewColumnHeader1"></xp:viewColumnHeader>
	</xp:viewColumn>
	<xp:viewColumn columnName="fruit" id="viewColumn2">
		<xp:viewColumnHeader value="fruit" id="viewColumnHeader2"></xp:viewColumnHeader>
	</xp:viewColumn>
</xp:viewPanel>

componentId - 제어 ID

포함된 페이지에 있는 제어의 ID를 지정합니다.

카테고리
기본사항
구문
componentId="identifier"
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 componentId를 찾으십시오.

이 특성이 비어 있는 경우에는 전체 페이지가 포함됩니다.

computeDocument - 문서 계산 메소드 바인딩

문서가 계산되거나 다시 계산될 때 이벤트 핸들러를 활성화합니다.

카테고리
이벤트
구문
<xp:dominoDocument><xp:this.computeDocument attributes>content</xp:computeDocument></xp:dominoDocument>
사용법
이벤트 핸들러 구문에 대한 자세한 정보는 eventHandler - 이벤트 핸들러(특성)를 참조하십시오.

containerStyleClass - CSS 컨테이너 스타일 클래스

컨테이너 제어가 렌더링될 때 적용할 CSS 클래스 목록을 지정합니다.

카테고리
스타일
구문
containerStyleClass="name ..."
여기서, name은 클래스를 식별합니다. 공백을 사용하여 여러 이름을 구분하십시오.
사용법
디자인 모드에서 모든 특성을 클릭하고 스타일 아래에서 containerStyleClass를 찾으십시오.

그러면 이 값에 class=가 설정되어 외부 스팬의 렌더링이 발생합니다.

contentStyleClass - 탭 컨텐츠 클래스

탭 컨텐츠에 스타일이 없는 경우 적용할 CSS 클래스 목록을 지정합니다.

카테고리
스타일
구문
contentStyleClass="name ..."
여기서, name은 클래스를 식별합니다. 공백을 사용하여 여러 이름을 구분하십시오.
사용법
디자인 모드에서 모든 특성을 클릭하고 스타일 아래에서 contentStyleClass를 찾으십시오.

그러면 이 값에 class=가 설정되어 외부 스팬의 렌더링이 발생합니다.

contentType - 컨텐츠 유형

컨텐츠 유형, 텍스트 또는 HTML을 지정합니다.

카테고리
형식
구문
contentType="text|html"
사용법
디자인 모드에서 모든 특성을 클릭하고 형식 아래에서 contentType을 찾으십시오.

기본 컨텐츠 유형은 text입니다.

예제
이 계산된 필드 제어는 컨텐츠 유형으로 HTML을 사용합니다.
<xp:text escape="true" id="computedField1"
	value="#{javascript:return requestScope.number1 + requestScope.number2}"
	contentType="html">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:text>

converter - 변환기

데이터 형식이 문자열이 아닌 경우 데이터 형식을 정의합니다.

카테고리
데이터
구문
<xp:this.converter>converter</xp:this.converter>
여기서, converter는 다음 중 하나입니다.
<xp:convertBoolean attributes>content</xp:convertBoolean>
<xp:convertNumber attributes>content</xp:convertNumber>
<xp:convertDateTime attributes>content</xp:convertDateTime>
<xp:convertMask attributes>content</xp:convertMask>
<xp:customConverter></xp:customConverter>
사용법
디자인 모드에서 특성 아래의 데이터 탭을 클릭하고 표시 유형을 찾거나 모든 특성을 클릭하고 데이터 아래에서 converter를 찾으십시오.
포함된 특성
변환기에는 다음과 같은 특성이 있습니다.
표 89. 부울 변환을 위해 포함된 특성
특성 설명
loaded="true|false"
페이지 로드 시 태그 인스턴스의 작성 여부입니다. 기본값은 true입니다.
message="message text"
strict="true"인 경우 사용자에게 표시할 메시지이며 true가 아니거나 false인 경우 사용자가 값을 입력합니다. 메시지는 데이터 제출 시에 표시됩니다.
strict="true|false"
true인 경우 truefalse만 입력 값으로 받습니다. 기본적으로 true가 아닌 모든 입력 값은 false로 간주됩니다.
표 90. 숫자 변환을 위해 포함된 특성
특성 설명
currencyCode="option"
ISO 4712 통화 코드입니다(예: USD).
currencySymbol="symbol"
통화 기호입니다.
groupingUsed="true|false"
"그룹화 구분 기호"가 사용되는지 여부입니다. 기본값은 true입니다.
integerOnly="true|false"
값이 정수로 잘리는지 여부입니다. 기본값은 false입니다.
loaded="true|false"
페이지 로드 시 태그 인스턴스의 작성 여부입니다. 기본값은 true입니다.
locale="option"
언어와 국가 코드입니다(예: en_US).
maxFractionDigits="n"
숫자 소수 부분의 최대 자릿수입니다.
maxIntegerDigits="n"
숫자 정수 부분의 최대 자릿수입니다.
minFractionDigits="n"
숫자 소수 부분의 최소 자릿수입니다.
minIntegerDigits="n"
숫자 정수 부분의 최소 자릿수입니다.
pattern="pattern"
변환된 숫자 값을 형식화하기 위한 사용자 정의 패턴입니다.
type="number|currency|percent"
변환의 형식화입니다. 기본값은 number입니다.
표 91. 날짜/시간 변환을 위해 포함된 특성
특성 설명
dateStyle="default|short|medium|long|full"
날짜 값에 대해 사전 정의된 형식화입니다.
ignoreUserTimeZone="true|false"
사용자 시간대를 무시하고 플랫폼 시간대를 사용할 것인지 여부입니다.
loaded="true|false"
페이지 로드 시 태그 인스턴스의 작성 여부입니다. 기본값은 true입니다.
locale="option"
언어와 국가 코드입니다(예: en_US).
pattern="pattern"
변환된 날짜/시간 값을 형식화하기 위한 사용자 정의 패턴입니다.
timeStyle="default|short|medium|long|full"
시간 값에 대해 사전 정의된 형식화입니다.
timeZone="option"
형식화된 값의 시간대입니다(예: US/Eastern).
type="date|time|both"
형식화할 파트입니다. 기본값은 date입니다.
표 92. 마스크 변환을 위해 포함된 특성
특성 설명
asis="true|false"
마스크된 입력이 아닌 데이터의 제거 여부입니다. 기본값은 false입니다.
loaded="true|false"
페이지 로드 시 태그 인스턴스의 작성 여부입니다. 기본값은 true입니다.
mask="mask"
마스크 문자입니다. 여기서 #는 숫자 플레이스홀더이고 ?는 문자 플레이스홀더입니다.
예제
이 편집 상자는 연관된 데이터를 숫자로 변환합니다.
<xp:inputText id="inputText1" value="#{document1.quantity}">
	<xp:this.converter>
		<xp:convertNumber type="number"></xp:convertNumber>
	</xp:this.converter>
</xp:inputText>
이 편집 상자는 연관된 데이터를 부울 값으로 변환합니다.
<xp:inputText id="inputText1" value="#{document1.ispublic}">
	<xp:this.converter>
		<xp:convertBoolean" strict="true" message="ispublic에 대해 true 또는 false
입력"></xp:convertBoolean>
	</xp:this.converter>
</xp:inputText>

coords - 좌표

클라이언트 이미지 맵에서 화면에 사용할 핫스팟의 위치 및 모양을 지정합니다.

카테고리
형식
구문
coords="coordinates"
사용법
디자인 모드에서 모든 특성을 클릭하고 형식 아래에서 coords를 찾으십시오.

기본 컨텐츠 유형은 text입니다.

createdStyleClass - 작성된 스타일 클래스

Created On 열에 적용할 CSS 클래스 목록을 지정합니다.

카테고리
스타일
구문
createdStyleClass="name ..."
여기서, name은 클래스를 식별합니다. 공백을 사용하여 다중 클래스 이름을 구분하십시오.
사용법
디자인 모드에서 모든 특성을 클릭하고 스타일 아래에서 createdStyleClass를 찾으십시오.

createdTitle - 작성된 제목

Created On 헤더의 대체 제목을 지정합니다.

카테고리
기본사항
구문
createdTitle="title"
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 createdTitle을 찾으십시오.

기본 제목은 Date입니다.

createdValue - 작성된 값 바인딩

작성 날짜 값을 겹쳐씁니다.

카테고리
기본사항
구문
createdValue="#{javascript:textofscript}"
여기서, 서버 스크립트는 날짜 유형의 값을 리턴합니다.
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 createdValue를 찾으십시오.

기본값은 실제 작성 날짜입니다.

createForm - 양식 작성 플래그

form 요소를 작성하거나 작성하지 않습니다.

카테고리
기본사항
구문
createForm="true|false"
여기서, true는 양식을 강제로 작성하며 false는 양식 작성을 억제합니다.
사용법
디자인 모드에서 모든 특성을 클릭하고 기본사항 아래에서 createForm을 찾으십시오.

소스 편집기에서 사용자 정의 form 요소를 작성할 수 있습니다. 기본 양식의 스펙 예제를 참조하십시오.

기본적으로(이 특성이 지정되지 않은 경우) 양식은 없는 경우에만 작성되며 있는 경우에는 작성되지 않습니다.

예제
이 XPage는 양식 작성을 억제합니다.
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" createForm="false">
	<xp:this.data>
		<xp:dominoDocument var="document1" formName="form1"></xp:dominoDocument>
	</xp:this.data>
	<xp:inputText id="inputText1" value="#{document1.subject}"
		style="font-weight:bold">
	</xp:inputText>
	<xp:button value="submit" id="button1" style="font-weight:bold">
		<xp:eventHandler event="onclick" submit="true"
			refreshMode="complete" immediate="false" save="true">
						</xp:eventHandler>
	</xp:button>
</xp:view>
다음 XML을 생성합니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title></title>
<script type="text/javascript" src="/domjs/dojo-1.3.2/dojo/dojo.js" djConfig="locale: 'en-us'"></script>
<script type="text/javascript" src="/domjs/dojo-1.3.2/ibm/xsp/widget/layout/xspClientDojo.js"></script>
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xsp.css">
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xspLTR.css">
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xspFF.css">
</head>
<body class="xspView tundra">
<input type="text" id="view:inputText1" name="view:inputText1" style="font-weight:bold" class="xspInputFieldEditBox"><button style="font-weight:bold" class="xspButtonSubmit" type="button" name="view:button1" id="view:button1">submit</button><script type="text/javascript">

XSP.addOnLoad(function() {
XSP.attachEvent("view:_id2", "view:button1", "onclick", null, true, false);
}); 

</script>

</body>
</html>
양식이 작성되는 경우(억제되지 않은 경우) XML은 다음과 같습니다.
<html lang="en">
<head>
<title></title>
<script type="text/javascript" src="/domjs/dojo-1.3.2/dojo/dojo.js" djConfig="locale: 'en-us'"></script>
<script type="text/javascript" src="/domjs/dojo-1.3.2/ibm/xsp/widget/layout/xspClientDojo.js"></script>
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xsp.css">
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xspLTR.css">
<link rel="stylesheet" type="text/css" href="/domjava/xsp/theme/webstandard/xspFF.css">
</head>
<body class="xspView tundra">
<form id="view:_id1" method="post" action="/foo.nsf/xpage2.xsp" class="xspForm" enctype="multipart/form-data">
<input type="text" id="view:_id1:inputText1" name="view:_id1:inputText1" style="font-weight:bold" class="xspInputFieldEditBox"><button style="font-weight:bold" class="xspButtonSubmit" type="button" name="view:_id1:button1" id="view:_id1:button1">submit</button>

<input type="hidden" name="$$viewid" id="view:_id1__VUID" value="!cidukjk9dq!">
<input type="hidden" name="$$xspsubmitid">
<input type="hidden" name="$$xspexecid">
<input type="hidden" name="$$xspsubmitvalue">
<input type="hidden" name="$$xspsubmitscroll">
<input type="hidden" name="view:_id1" value="view:_id1"></form>
<script type="text/javascript">

XSP.addOnLoad(function() {
XSP.attachEvent("view:_id1:_id2", "view:_id1:button1", "onclick", null, true, false);
}); 

</script>
</body>
</html>

currentStyleClass - 현재 페이지 스타일 클래스

현재 페이지 제어에 스타일이 없는 경우 적용할 CSS 클래스 목록을 지정합니다.

카테고리
스타일
구문
currentStyleClass="name ..."
여기서, name은 클래스를 식별합니다. 공백을 사용하여 여러 이름을 구분하십시오.
사용법
디자인 모드에서 모든 특성을 클릭하고 스타일 아래에서 currentStyleClass를 찾으십시오.

그러면 이 값에 class=가 설정되어 외부 스팬의 렌더링이 발생합니다.

data - 데이터 소스

페이지 또는 제어의 데이터 소스를 정의합니다.

카테고리
데이터
구문
<xp:this.data>
	<xp:dominoDocument attributes>content</xp:dominoDocument> <!--for document source-->
	<xp:dominoView attributes>content</xp:dominoView> <!--for view source-->
	...
</xp:this.data
이 특성은 페이지 및 일부 컨테이너 제어에 적용되며 수에 관계없이 dominoDocumentdominoView 요소를 포함할 수 있습니다.
사용법
디자인 모드에서 초점이 페이지 또는 컨테이너 제어에 있는지 확인하십시오. 특성 아래에서 데이터 탭을 클릭하거나 모든 특성을 클릭하고 데이터 아래에서 data를 찾으십시오. dominoDocumentdominoView 유형의 데이터 소스를 추가, 편집 또는 제거할 수 있습니다.
포함된 특성
데이터 소스에는 다음 특성이 있습니다.
action="editDocument|openDocument"
(dominoDocument) 페이지 열기 및 제출에 대한 데이터 소스 처리 조치를 지정합니다. 기본값은 페이지 제출 시 새 문서 작성입니다. editDocumentopenDocument 옵션을 사용하면 페이지를 열 때 데이터 소스로 페이지가 채워집니다. editDocument 옵션을 사용하면 페이지를 제출할 때 문서가 대체됩니다.
allowDeletedDocs="true|false"
(dominoDocument) 소프트 삭제된 문서 열기를 허용 또는 금지합니다.
categoryFilter="category"
(dominoView) 컨텐츠를 카테고리(배열)로 보기를 제한합니다.
computeDocument