在我的组件的JSP中,如果我想使用currentNode
对象引用当前节点,它会抛出NullPointerException
,然后整个组件抛出ScriptEvaluationException
我的组件JSP确实包含顶部的global.jsp
。我猜currentNode对象是由global.jsp
奇怪的是,组件仅在特定站点中抛出这些异常。它适用于其他人。
可能是什么原因造成的? currentNode
对象在什么条件下为NULL?
答案 0 :(得分:4)
也许你的组件是synthetic resource?如果你有这样的标签:
<cq:include path="mynode" resourceType="myapp/components/somecomponent" />
且mynode
不存在,包含的组件 将是渲染器,但您无法在somecomponent
代码中引用节点属性。
在这种情况下,resource
变量将为SyntheticResource
,currentNode
将为null
。
<强>更新强>
如果你真的不需要currentNode
但是QueryManager
对象(正如你的评论所说),你可以使用resourceResolver
对象来获取它:
resourceResolver.adaptTo(Session.class).getWorkspace().getQueryManager()
答案 1 :(得分:0)
我想补充说,只有在拖放后包含组件后才创建节点。因此,如果情况并非如此,那么您的节点将不在/content/your-site/