currentNode对象给出NullPointerException

时间:2013-09-17 12:41:28

标签: cq5 sling aem

在我的组件的JSP中,如果我想使用currentNode对象引用当前节点,它会抛出NullPointerException,然后整个组件抛出ScriptEvaluationException

我的组件JSP确实包含顶部的global.jsp。我猜currentNode对象是由global.jsp

创建的

奇怪的是,组件仅在特定站点中抛出这些异常。它适用于其他人。

可能是什么原因造成的? currentNode对象在什么条件下为NULL?

2 个答案:

答案 0 :(得分:4)

也许你的组件是synthetic resource?如果你有这样的标签:

<cq:include path="mynode" resourceType="myapp/components/somecomponent" />

mynode不存在,包含的组件 将是渲染器,但您无法在somecomponent代码中引用节点属性。

在这种情况下,resource变量将为SyntheticResourcecurrentNode将为null

<强>更新

如果你真的不需要currentNode但是QueryManager对象(正如你的评论所说),你可以使用resourceResolver对象来获取它:

resourceResolver.adaptTo(Session.class).getWorkspace().getQueryManager()

答案 1 :(得分:0)

我想补充说,只有在拖放后包含组件后才创建节点。因此,如果情况并非如此,那么您的节点将不在/content/your-site/