У меня есть своего рода запутанный вопрос. Я попытаюсь изо всех сил объяснить. Я работаю над кодовой базой Adobe CQ, которая является JCR и Java.Проверьте, не был ли linklist не пустым до метода getNode
У меня есть заявление Java ArrayList вроде этого:
ArrayList<Map<String,Property>> list6 = new ArrayList<Map<String,Property>>();
Кроме того у меня есть связанный список определяется CQ/Java кода в других местах в коде. Этот связанный список называется linkSet6
. Каждый «узел» в списке указан по имени links
Я пытаюсь получить контент от linkSet6
до ArrayList list6
.
Проблема, с которой я столкнулся, - linkSet6
, всегда существует, но она может иметь или не иметь links
. Я делаю это, и это прекрасно работает, когда есть "ссылки"
if(currentNode != null && currentNode.hasNode("linkSet6")) {
baseNode = currentNode.getNode("linkSet6").getNode("links");
list6 = Utilities.parseStructuredMultifield(baseNode);
}
Но когда linkSet6 является emptyI получаю эту ошибку:
org.apache.sling.api.scripting.ScriptEvaluationException: An exception occurred processing JSP page /apps/citrixosd-responsive/components/content/footerNavigation/footerNavigation.jsp at line 41
линии 41 это:
baseNode = currentNode.getNode("linkSet6").getNode("links");
I Проверено значение size(), length() и т. д., но безрезультатно. Любой совет о том, как проверить, есть ли links
, есть getNode("links")
.
может быть поздно, но мы отошли от узла и ценностей ресурсов и ValueMap упростить код - особенно в JSPs (которые не должны строить таких как списки карт). См. Http://itgumby.github.io/blog/2016/better-aem-jsp-objects.html для получения дополнительных примеров различных API, которые упрощают ваш код. –