Я пытаюсь преобразовать существующий код компонента из JSP в Sightly. Для этого мне нужно получить объект paragarph в бэкэнде, то есть java, и отправить его наглядный (HTL).Невозможно использовать объект объекта в объекте
Существующий код в JSP:
<%
ParagraphSystem parSys = ParagraphSystem.create(resource, slingRequest);
for (Paragraph par: parSys.paragraphs()) { %>
<sling:include resource="<%= par %>"/><%
} %>
Таким образом, существуют в том числе ресурсов внутри компонента.
Ниже новый красивый & Jave код выше одного:
Java:
public class AnchorList extends WCMUsePojo{
private List<Paragraph> paragraphs;
public List<Paragraph> getParagraphs() {
return paragraphs;
}
public void setParagraphs(List<Paragraph> paragraphs) {
this.paragraphs = paragraphs;
}
public void activate() throws Exception{
paragraphs = new LinkedList<Paragraph>();
Resource resource = getResource();
SlingHttpServletRequest slingRequest = getRequest();
ParagraphSystem parSys = ParagraphSystem.create(resource, slingRequest);
for (Paragraph par: parSys.paragraphs()) {
paragraphs.add(par);
}
}
}
красивый:
<div data-sly-use.anchorList="com.xxx.components.AnchorList"data-sly-unwrap>
<div data-sly-list.paras="${anchorList.paragraphList}" data-sly-unwrap>
<div data-sly-test.paraList="${paras}" data-sly-unwrap></div>
<div class="anchorlistitem section collapsed">
<div data-sly-resource="${@ resource=paraList}" data-sly-unwrap></div>
</div>
</div>
Здесь я столкнулся с двумя проблемами. Во-первых, я не могу получить объект абзаца от java до конца, используя видимый. Я пытался проверить его, отображая значения объекта абзаца, используя следующие:
<div>
para object is ${paras}
</div>
Но это не diplaying никакой ценности. Я могу видеть значения объекта абзаца в классе java, но он не может прочитать это наглядно.
Вторая проблема: мне нужен эквивалентный зрелищный код для JSP, чтобы включить ресурс в компонент. Я не уверен, правильно ли написан код, который я написал с использованием ресурса data-sly.
Ниже журнал ошибок я получаю, когда я пытаюсь запустить приведенный выше код Java/HTL:
19.12.2016 00: 22: 51,778 ERROR [0: 0: 0: 0: 0: 0 : 0: 1 [1482124971543] GET /website/en/home/what-is-totalinsight/investing.html HTTP/1.1] com.day.cq.wcm.core.impl.WCMDebugFilter Исключение: org.apache.sling.api .request.RecursionTooDeepException:/content/websitet/ru/home/what-is-totalinsight/investing/jcr: content/page_content/achorlist org.apache.sling.scripting.sightly.SightlyException: org.apache.sling.api.request .RecursionTooDeepException:/content/website/en/home/what-is-totalinsight/investing/jcr: content/page_content/achorlist at com.adobe.cq.sightly.WCMScriptHelper.includeResource (WCMScriptHelper.java:143) в com.adobe .cq.sightly.WCMScriptHelper.includeResource (WCMS criptHelper.java:86) на com.adobe.cq.sightly.internal.extensions.ResourceExtension.call (ResourceExtension.java:99) на org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl.call (RenderContextImpl.java:89) в apps.pnc_total_insight.components.elements.achorlist.SightlyJava_achorlist.render (SightlyJava_achorlist.java:116) в org.apache.sling.scripting.sightly.impl.engine.runtime.RenderUnit.render (RenderUnit. java: 52) на org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngine.evaluateScript (SightlyScriptEngine.java:95) на org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngine.eval (SightlyScriptEngine. java: 83) at org.apache.sling.scripting.core.impl.DefaultSlingScript.call (DefaultSlingScript.java:361)