1

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

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

奇怪的是,该组件仅在特定站点中引发这些异常。它在其他人身上效果很好。

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

4

2 回答 2

4

也许您的组件是合成资源?如果你有这样的包含标签:

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

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

在这种情况下,resource变量将是 aSyntheticResource并且currentNode将是null

更新:

如果您真的不需要currentNodebutQueryManager对象(正如您的评论所说),您可以使用resourceResolverobject 来获取它:

resourceResolver.adaptTo(Session.class).getWorkspace().getQueryManager()
于 2013-09-17T12:49:43.183 回答
0

我想补充一点,只有在拖放后包含组件后才会创建节点。因此,如果不是这种情况,您将不会拥有您的节点/content/your-site/

于 2015-09-08T19:14:23.950 回答