Получить текущий узел страницы с 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 по умолчанию:
Я думаю что ${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" />