我正在做一个语言选择器,允许在英语和法语之间进行更改,该应用程序在Jahia上。
我想从我的组件jsp
的{{1}}页面中获取[j:fullpath],但我找不到方法得到它。我需要当前页面的languagePicker
,当前页面实际上是.... / home / html,但j:fullpath
回答我:
$(currentNode.path)
但我想要像:" / sites / services / home",这是我的主页上的实际j:fullpath。在这个节点下,有一个" VanityUrlMapping"并且再次出现2个节点,每种语言一个节点。
每个页面下都有一个vanityUrlmapping,那么如何在JSP中获取这些页面的j:fullpath?
由于
答案 0 :(得分:1)
如果您的组件存储在“正常区域”(非绝对区域)下,您可以上升JCR,直到找到类型为“jnt:page”的节点。这可以使用以下taglib轻松完成:http://downloads.jahia.com/downloads/jahia/digitalfactory7.0.0/digital-factory-taglib-7.0.0.0-tlddoc/jcr/getParentOfType.fn.html
如果您正在尝试为Jahia实现自定义语言切换器,您应该根据默认的Jahia语言切换组件构建自定义视图:
答案 1 :(得分:0)
我认为${renderContext.mainResouce.node.path}
正是您所寻找的。 p>
我不认为j:fullpath
会考虑虚荣网址。但是,我不会那么做。
答案 2 :(得分:0)
@peetsnack是正确的,您必须使用$ {renderContext.mainResource.node}来获取与当前节点(此处为“ navbarlink”节点)关联的“ mainResource”(在大多数情况下,=包含“页面”)。
要获取带有虚假网址的正确(外部)网址,正确的服务器名称/方案...,最简单的方法是直接使用此网址: {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: 以下两段代码将生成相同的URL:
<c:url value="${contentNode.url}" />
<c:url value="${url.base}${node.path}.html" />