Получить текущий узел страницы с JSP

Я делаю выбор языка, который позволяет переключаться между английским и французским, приложение на Jahia.

Я хотел бы получить [j:fullpath] со страницы, на которой я нахожусь, с jsp моего компонента languagePickerНо я не могу найти способ получить это. мне нужно j:fullpath текущей страницы, текущая страница на самом деле..../home/html, но $(currentNode.path) отвечает мне:

/modules/template/02.02.01.10-SNAPSHOT/templates/base/navbar2/navbarlinks-lang

Но я бы хотел что-то вроде: " /sites/services/home", это мой фактический j: fullpath для моей домашней страницы. Под этим узлом есть "VanityUrlMapping" и еще раз под 2 узлами, по одному для каждого языка.

Под каждой страницей есть vanityUrlmapping, так как получить j: fullpath этих страниц в JSP?

Спасибо

2 ответа

Если ваш компонент хранится в "нормальной области" (не абсолютной), вы можете подниматься по JCR до тех пор, пока не найдете узел типа "jnt:page". Это легко сделать с помощью следующей метки: http://downloads.jahia.com/downloads/jahia/digitalfactory7.0.0/digital-factory-taglib-7.0.0.0-tlddoc/jcr/getParentOfType.fn.html

Если вы пытаетесь реализовать пользовательский переключатель языка для Jahia, вам, вероятно, следует создать собственное представление на основе компонента переключения языка Jahia по умолчанию:

https://github.com/Jahia/default/blob/master/src/main/resources/jnt_languageSwitcher/html/languageSwitcher.jsp

Я думаю что ${renderContext.mainResouce.node.path} это то, что вы ищете.

Я не думаю что j:fullpath будет принимать во внимание тщеславие URL. Я не особо с этим справляюсь.

@peetsnack прав, вы должны использовать ${renderContext.mainResource.node}, чтобы получить "mainResource" (= содержащая "страницу" в большинстве случаев), связанный с вашим текущим узлом (здесь ваш узел "navbarlink").

Чтобы получить правильный (внешний) URL-адрес с тщательным URL-адресом, правильным именем сервера / схемой..., проще всего использовать это напрямую: {renderContext.mainResource.node.url}

Вот полный пример:

   <%--Retrieve the parent page--%>
   <c:set var="parentPageUrl" value="${renderContext.mainResource.node.url}"/>
   <%-- for correct url encoding --%>
   <c:url var="parentPageUrl" value="${parentPageUrl}"/>
   <%-- if you need absolute url: --%> 
   <c:set var="parentPageUrl" value="${url.server}${parentPageUrl}"/>

REM: следующие 2 фрагмента кода будут генерировать один и тот же URL:

<c:url value="${contentNode.url}" />
<c:url value="${url.base}${node.path}.html" />

источник: https://academy.jahia.com/files/live/sites/academy/files/documentation/training/TR7_Basic-Developer_EN_V1.5.pdf

Другие вопросы по тегам