2016-08-09 3 views
0

В отличие от включения global.jsp с каждым компонентом jsp в CQ5, наглядно не включает никакой такой зависимости. Как он действительно получает доступ ко всем глобальным объектам. Что такое бэкэнд-процесс. И как наглядный код компилируется в java ??Как зрелищные файлы HTML получают доступ к глобальным неявным объектам в AEM 6

ответ

2

Как наглядный код компилируется в java?

Sling красивого API имеет две связки, чтобы поддержать это, первый шаг заключается в компиляции красивой в Abstract Syntax Tree (абстрактный синтаксис Дерево отображает обычный исходный Java-код в виде дерева. Это дерево является более удобным и надежным для анализа и изменять программно, чем текстовый источник.) Это делается Apache Sling Scripting Sightly Compiler

Следующая заключается в преобразовании (transpile) абстрактного синтаксиса дерево в исходный код Java. Это достигается в комплекте Java Compiler

Как он действительно обращается ко всем глобальным объектам.

Чтобы понять это, вам нужно понять, как происходит разрешение сценария в Sling и как ресурс разрешен для скриптов, который является основой для Sling Scripting engine. Чтобы понять основы ScriptEngine посмотреть на ява документы here, реализация этого SightlyScriptEngine

Путь разрешения скрипт работает в том, что ресурс приспособлен к DefaultSlingScript, это делается SlingScriptAdapterFactory.

SlingScriptAdapterFactory имеет ссылки на BindingsValuesProvider, который передается по адресу DefaultSlingScript. Одна из реализаций BindingsValuesProvider - AEMSightlyBindingsValuesProvider (вы можете увидеть это как услугу в /system/console/services), которая предоставляет объекты по умолчанию.

DefaultSlingScript затем отвечает за вызов SightlyScriptEngine и вызывает его метод eval, который заполняет объекты по умолчанию в привязке и затем устанавливает это связывание как атрибут запроса.