В компоненте AEM Sightly, который имеет два режима; галерея и каталог. Представление каталога реализовано с помощью селектора (/apps/mi-proj/people_list/directory.html).Можно ли переключиться на Sling Selector Script на основе свойства страницы
По умолчанию компонент отображается в режиме галереи (с использованием people_list/people_list.html). Пользователи хотели бы, чтобы выбрать, какой вид отображается по умолчанию. В обоих случаях пользователи могут переключаться между представлениями.
Пример пути предполагающая стропа содержания: ResourceType = people_list:
/content/mi-proj/people.html (people_list.html)
/content/mi-proj/people.gallery.html (people_list.html)
/content/mi-proj/people.directory.html (directory.html)
Пользователи имеют флажок в диалоговом окне компонента, чтобы выбрать директорию по умолчанию. Оба представления используют один и тот же класс Java WCMUse, который вызывает this.getResponse(). SendRedirect (redirectPath), если установлено свойство каталога по умолчанию.
private void forwardToDirectory(String selector){
String redirectPath;
redirectPath = String.format("%s.%s.html", this.getCurrentPage().getPath(), selector);
try {
this.getResponse().sendRedirect(redirectPath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Редизайн работает нормально на моем localhost и dev-уровне. Но проблемы возникают при рендеринге страницы на странице поиска контента AEM (cf #), /cf#/content/mi-proj/people.html
Он размещает страницу в большом iframe. По какой-то причине схема iframe (http) не соответствует запросу (https) для перенаправления, поэтому браузеры генерируют исключение (я пытался заставить его https, но он все еще не говорит о том, что схема https не соответствует iframe схема, данные) ... мне кажется, мне нужно обойти это и покончить с перенаправлением ...
Мне не нравилось перенаправление перенаправления 302 в любом случае, и я бы предпочел что-то сделать с ним бэкенд ... Вот процесс, который я хочу написать ...
if directoryDefault == true || selector == 'directory'
use directory.html
else
people_list.html
Моя единственная идея заключается в том, чтобы рефакторинга/переименование скриптов (называя их gllry.html и drcty.html). Проверьте селектор от people_list.html, а затем - с учетом данных - включите соответствующий сценарий. Но это не использует разрешение sling для селекторов, и я мог бы также переключиться на параметры запроса ...
Итак, мой вопрос в том, есть ли способ заставить компонент использовать селекторный скрипт, даже если запрос не есть селектор?