Jahia получает данные JCR рабочей области в режиме редактирования - PullRequest
0 голосов
/ 08 ноября 2018

Я использую Jahia Digital Experience Manager 7.1.2 .

Как отобразить данные из live рабочего пространства в режиме редактирования JSTL из JSP )?


Подробности:

Мне нужно отобразить некоторые данные на странице в режиме редактирования. Проблема заключается в том, что данные представляют собой пользовательский контент, хранящийся только в рабочей области JCR live (не хранится в рабочей области default, используемой в режиме редактирования).

Обычно я отображаю данные следующим образом (отлично подходит для отображения default данных рабочего пространства в режиме редактирования и live данных в онлайн-режиме):

<%@ taglib prefix="jcr" uri="http://www.jahia.org/tags/jcr" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--@elvariable id="currentNode" type="org.jahia.services.content.JCRNodeWrapper"--%>

<c:forEach items="${jcr:getChildrenOfType(currentNode,'unt:formResponse')}" var="resp">
     ${resp.name}
</c:forEach>

Но, конечно, поскольку мои данные существуют только в live рабочей области, в режиме редактирования ничего не отображается.

Используя скриптлет, я могу получить живой контент:

<c:set var="currentNodeId" value="${currentNode.identifier}"/>
<c:set var="locale" value="${renderContext.mainResourceLocale}"/>
<%
     JCRNodeWrapper responsesNode = JCRSessionFactory.getInstance().getCurrentUserSession("live", locale).getNodeByIdentifier(currentNodeId);
     for (JCRNodeWrapper resp : responsesNode.getNodes()) {
          log.info(resp.getName());
     }
     pageContext.setAttribute("responsesNode", responsesNode);
%>
<c:forEach items="${jcr:getChildrenOfType(responsesNode,'unt:formResponse')}" var="resp">
     ${resp.name}
</c:forEach>

Я также могу сделать это в полном java скриптлете (или лучше с taglib) или в groovy, но есть ли способ сделать это в чистом JSTL?

...