생각을 IT다
HTL 언어 정리 (4. 특수 HTML태그 / 사용 API) 본문

이전 글 : https://thinking-it.tistory.com/31
HTL 언어 정리 (3. 블록문)
이전 글 : https://thinking-it.tistory.com/30 HTL 언어 정리 (2. 표현식 옵션) 이전 글 : https://thinking-it.tistory.com/29 HTL 언어 정리 (1. 표현 언어, 구문 및 의미론) 해당 글은 아래 출처에서 가져온 것으로 자세
thinking-it.tistory.com
해당 글은 아래 출처에서 가져온 것으로 자세한 것은 출처로 이동하여 봐주시길 바랍니다.
자료 출처 : https://github.com/adobe/htl-spec/blob/master/SPECIFICATION.md#121-display-context
해당 자료의 길이가 길어 분할하여 업로드하려고 합니다.
3. 특수 HTML 태그
3.1.<sly>
HTML 태그를 사용하여 현재 <sly>요소를 제거하여 하위 요소만 표시되도록 할 수 있습니다. 기능은 data-sly-unwrap블록 요소와 유사합니다.
<!--/* This will display only the output of the 'header' resource, without the wrapping <sly> tag */-->
<sly data-sly-resource="./header"></sly>
유효한 HTML 5 태그는 아니지만 다음을 data-sly-unwrap사용하여 <sly>태그를 최종 출력에 표시할 수 있습니다.
<sly data-sly-unwrap="${false}"></sly> <!--/* outputs: <sly></sly> */-->
4. 사용-API
HTL은 비즈니스 논리가 마크업과 혼합되지 않도록 하여 관심사 분리를 장려합니다. 그러나 비즈니스 로직은 Use-API를 통해 구현할 수 있습니다.
4.1. 자바 사용-API
Java Use-API는 를 통해 HTL 스크립트에서 사용할 data-sly-use 비즈니스 로직 객체를 로드하는 데 사용할 수 있습니다. Java Use-API 객체는 POJO의 기본 생성자를 통해 특정 구현에 의해 인스턴스화된 간단한 POJO일 수 있습니다.
Use-API POJO는 다음 서명과 함께 init이라는 공용 메서드를 노출할 수도 있습니다.
/**
* Initialises the Use bean.
*
* @param bindings All bindings available to the HTL scripts.
**/
public void init(javax.script.Bindings bindings);
bindings맵에는 Use-API 개체가 처리에 사용할 수 있는 현재 실행된 HTL 스크립트에 대한 컨텍스트를 제공하는 개체가 포함될 수 있습니다 .
4.2. JavaScript 사용-API
사용 개체는 다음 규칙을 사용하여 JavaScript로 정의할 수도 있습니다.
/**
* In the following example '/libs/dep1.js' and 'dep2.js' are optional
* dependencies needed for this script's execution. Dependencies can
* be specified using an absolute path or a relative path to this
* script's own path.
*
* If no dependencies are needed the dependencies array can be omitted.
*/
use(['dep1.js', 'dep2.js'], function (Dep1, Dep2) {
// implement processing
// define this Use object's behaviour
return {
propertyName: propertyValue
functionName: function () {}
}
});
4.3. 개체 해상도 및 해당 속성 또는 메서드
HTL 구현은 실행되는 플랫폼에 따라 Use-API에 대한 적절한 지원을 제공해야 합니다. 그러나 대상 개체에 대한 속성 또는 메서드 확인은 다음 규칙을 따라야 합니다.
- expression.identifier는 expression["identifier"] 과 expression['identifier']이 동등하다
- identifier해상도는 다음 알고리즘을 사용합니다 .
- identifier에 의해 반환된 개체의 공개적으로 액세스 가능한 expression필드로 해결하려고 시도 합니다. 찾으면 반환하십시오.
- identifier에 의해 반환된 개체의 형식 매개변수 없이 공개적으로 액세스할 수 있는 expression메서드로 해결하려고 시도 합니다.
- 이름이 identifier인 메서드를 찾으십시오. 찾으면 메서드를 호출하고 반환합니다.
- 호출된 getIdentifier getter를 찾으려고 시도합니다 ( camelCase 에 주목 ). 찾으면 메서드를 호출하고 반환합니다.
- isIdentifier 메서드를 찾으십시오 ( camelCase에 주목하십시오 ). 찾으면 메서드를 호출하고 반환합니다.
- null 반환
'AEM(Adobe Experience Manager)' 카테고리의 다른 글
| HTL 특징과 장.단점 (0) | 2023.03.08 |
|---|---|
| AEM 자주 사용되는 용어 (0) | 2023.03.06 |
| HTL 언어 정리 (3. 블록문) (0) | 2023.02.02 |
| HTL 언어 정리 (2. 표현식 옵션) (0) | 2023.02.02 |
| HTL 언어 정리 (1. 표현 언어, 구문 및 의미론) (1) | 2023.02.01 |