Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aem 获取CQ5中的节点表单currenPage_Aem_Jcr - Fatal编程技术网

Aem 获取CQ5中的节点表单currenPage

Aem 获取CQ5中的节点表单currenPage,aem,jcr,Aem,Jcr,我有一个组件需要从同一页上的另一个组件获取属性 有没有办法从当前页面获取组件的节点对象 代码中提供了需要获取的节点的名称。假设您需要的节点位于页面/jcr:content/yournode: 页面对象有一个方法getContentResource(),默认情况下,该方法返回jcr:content资源节点。您还可以使用page.getContentResource(“yournode”)在jcr:content下面获取特定节点 如果您的节点出于某种原因与jcr:content同级(顺便说一句,它不

我有一个组件需要从同一页上的另一个组件获取属性

有没有办法从
当前页面
获取组件的
节点
对象


代码中提供了需要获取的节点的名称。

假设您需要的节点位于
页面/jcr:content/yournode

页面
对象有一个方法
getContentResource()
,默认情况下,该方法返回
jcr:content
资源节点。您还可以使用
page.getContentResource(“yournode”)
jcr:content
下面获取特定节点

如果您的节点出于某种原因与
jcr:content
同级(顺便说一句,它不应该如此),您可以使用
resource.listChildren()
迭代资源的子节点


记住,这都是SlingAPI,所以您管理的是资源,而不是节点。您可以使用
resource.adapto(Node.class)

从资源中获取JCR节点。我想补充一点,如果要解决的问题需要分离关注点,则可以通过将请求委托给servlet以更干净的方式解决此问题-将视图与控制器逻辑分离。

使用下面的逻辑将验证器添加到表单中,该逻辑调用托管的servlet

  var url = CQ.HTTP.addParameter(dialog.path + '.validator.json', 'value', value);
  var result = CQ.HTTP.eval(url);

 and in the servlet we access the node and its parents using below logic
   final Node currentNode = request.getResource().adaptTo(Node.class);
   try {
        final Node par = currentNode.getParent();

        final NodeIterator nodes = par.getNodes();

        // get all form names for the current paragraph system
        while (nodes.hasNext()) { //and the business logic
  • 更多信息,请访问:

通常每个页面类都有一个方法来检索
jcr:content
中的节点,这个方法稍微干净一些:

Node node = CurrentPage.getContentResource("COMPONENTNAME").adaptTo(Node.class);
开发人员应该在将资源调整到节点之前检查资源是否存在

现在我们有了一个节点,我们可以从该节点提取属性

String title = node.getProperty("jcr:title").getString();

通过这种方式,您可以获取组件的任何属性。

如果您觉得有帮助,请向上投票