У меня есть jstl, который используется для очистки фрагмента html между тегом из файла jsp. Но в текущем сценарии все мои компоненты находятся на виду. Я хочу добиться того же. Возможно ли каким-то образом использовать этот тег?Использование jstl в поле зрения
ответ
Вы не можете использовать любые ярлыки jsp в виде визитных карточек (это html не jsp в конце). Текущая реализация также не позволяет определять любые пользовательские теги.
Вы не можете использовать библиотеки тегов JSP в Sightly, но вы можете обойти это ограничение.
Вы можете включить другие сценарии в ваш Sightly-скрипт, используя атрибут data-sly-include
.
Вот что делает согласно the documentation:
Заменяет содержимое принимающего элемента с разметкой, порожденной файлом шаблон указанного HTML (красивым, JSP, ESP и т.д.), когда он обрабатывается его соответствующий шаблон двигатель. Контекст рендеринга включенного файла не будет включать текущий Sightly-контекст (в том числе файла); Следовательно, для включения красивых файлов, текущий
data-sly-use
придется повторить в прилагаемом файле
и больше на Sightly/JSP interoperability
переезда в красивом не обязательно является выбор все или ничего, потому что компоненты, написанные в Sightly, совместимы с компонентами, написанными в JSP или ESP. Это означает, что существующие проекты могут без проблем использовать Sightly для новых компонентов, сохраняя JSP для существующих компонентов.
Даже в пределах одного и того же компонента, Sightly файлы могут использоваться вместе с JSP и ESP. Например, JSP может включать в себя красивый файл, как это,
<cq:include script="footer.html"/>
и красивый файл может включать в себя JSP, как это,
<div data-sly-include="footer.jsp"></div>
Если вы убедитесь, что taglib виден JSP (собственно, в вашем JSP или global.jsp
, о котором идет речь), вы должны иметь возможность использовать taglib в JSP, а затем обращаться к JSP в ваших Sightly файлах.
В качестве альтернативы вы можете написать класс использования или модель Sling в Java, реализующую функциональность, аналогичную той, которую предоставляет настраиваемый тег.
Возможно, существует другой, более элегантный способ достижения желаемого результата, но это трудно сказать, не зная, что именно должен использоваться этот тег.
@HariomTomar, который звучит как-то, что вы, возможно, захотите оставить вне AEM. Рассматривали ли вы настройку 'mod_pagespeed' на Apache? Если вы хотите придерживаться решения Sightly, вызов JSP, в котором вы используете тег, должен делать трюк. – toniedzwiedz
Тег берет html между тегом и его минимизирует. Например: cleanTag> ' –
Таким образом, мне придется включить один файл jsp поверх html-кода и один ниже.открытие тега в одном и закрытие в другом, что, очевидно, вызовет исключение синтаксического анализа jsp. –