Adobe CQ - получить HTML-контент из узла .jsp

0

Имейте файл .jsp под /components

путь выглядит так:
http://localhost:4502/apps/project-name/components/my-component/one.jsp

Возможно ли получить HTML контент этого one.jsp по URL-адресу без создания узла контента?

что-то вроде:

http://localhost:4502/apps/project-name/components/my-component/one.HTML

для дальнейшего рендеринга требуется содержимое .html.

  • 3
    IIUC «.html контент необходим для дальнейшей визуализации» означает, что HTML, который генерирует ваш JSP, должен быть включен в другую страницу. В этом случае вам лучше использовать JSP-тег <cq: include>, который включает рендеринг ресурса. Конечно, это будет предназначаться для ресурса Sling (контента или другого узла). Вы также можете включить JSP в другие JSP как обычно, используя @include.
  • 0
    Привет Бертран, я вижу твою точку зрения. Еще одно уточнение, чтобы быть более подробным: этот .html должен вызываться при нажатии на ссылку (например, <a href="this.html"/> ). Я имею в виду, что это будет ссылка на html-содержимое jsp на другой странице jsp.
Показать ещё 2 комментария
Теги:
jsp
adobe
cq5

3 ответа

1
Лучший ответ

Насколько я знаю, вы не можете напрямую получить содержимое html из JSP, указав путь к файлу jsp. Он отображает содержимое в JSP как без компиляции.

Один из возможных способов - создать nt: неструктурированный узел с свойством sling: resourceType, установленным на путь jsp (что-то вроде ниже)

test: {
    sling:resourceType: "/apps/geometrixx/components/title/one.jsp",
    jcr:primaryType: "nt:unstructured"
}

И вы можете указать путь к тестовому узлу, чтобы получить html, отображаемый jsp.

/apps/geometrixx/components/title/test
  • 0
    привет, спасибо за ответ, такой подход вызывает у меня ошибку: имя инжектора Guice недоступно.
  • 0
    @sergionni Используете ли вы Slice Framework? Приведенный выше пример работает на моем сервере (без среза). Не могли бы вы предоставить больше информации об ошибке, чтобы мы могли ее выяснить?
Показать ещё 3 комментария
0

Вы всегда можете использовать традиционный.html файл вместо.jsp, но (возможно, очевидно) вы потеряете все возможности на стороне сервера, предоставляемые JSP.

Также стоит отметить, что анонимный доступ обычно запрещен /apps по соображениям безопасности, поэтому этот.html файл не будет доступен для экземпляра публикации с разрешениями OOTB.

0

Ваш вопрос немного расплывчатый, но, насколько я понял, вы хотите получить html для всей страницы, что можно сделать, читая входной поток из URL с помощью утилиты java.net.URL.

Возможно, вы также можете разместить iframe внутри своего другого jsp, чтобы получить содержимое.

  • 0
    я просто хочу выразить .jsp как чистый .html без создания узла в иерархии содержимого, чтобы получить доступ к этому .jsp, например: /one.html или другим подобным способом
  • 0
    Никакого бэкэнда, просто получите html контент по URL, вопрос в том, какой URL использовать. Спасибо за помощь.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню