Aem 在adobe cq5中检索节点的最佳方式是什么?
在AdobeCQ5中检索节点的不同方法有哪些,哪些是首选方法 我知道三种方法,一种是通过会话、请求,另一种是通过resourceResolver。 这些是Aem 在adobe cq5中检索节点的最佳方式是什么?,aem,sling,Aem,Sling,在AdobeCQ5中检索节点的不同方法有哪些,哪些是首选方法 我知道三种方法,一种是通过会话、请求,另一种是通过resourceResolver。 这些是 Node rootNode = session.getNode(path); by request Node currentNode = request.getResource().adaptTo(Node.class); by resourceResolver String resourcePath = "path/to/r
Node rootNode = session.getNode(path);
by request
Node currentNode = request.getResource().adaptTo(Node.class);
by resourceResolver
String resourcePath = "path/to/resource";
Node.node = resourceResolver.getResource(resourcePath).adaptTo(Node.class);
其中哪一个是最好的检索方式,为什么 首先,不鼓励问这样的问题,因为它会触发基于质疑的答案。尽管如此,我还是尽量客观。我认为这取决于用例,例如,您希望在代码中的何处获取节点:
- 如果您已经在servlet中,
可能是最 直截了当的方法request.getResource().adapto(Node.class)
- 如果您已经有一个jcr
,那么使用会话
methodgetNode(路径)
- 如果您已经有
resourcesolver
或getResource(path)
也可以resolve(path)
ResourceResolver
或其适配器:PageManager
,TagManager
,等等
我甚至认为,在内部,它最终都是会话。getNode(path)作为
资源解析程序
依赖于会话(您可以对其进行调整)和请求。getResource()
可能使用解析(path)
方法。首先,不鼓励问这样的问题,因为它触发了基于质疑的答案。尽管如此,我还是尽量客观。我认为这取决于用例,例如,您希望在代码中的何处获取节点:
- 如果您已经在servlet中,
可能是最 直截了当的方法request.getResource().adapto(Node.class)
- 如果您已经有一个jcr
,那么使用会话
methodgetNode(路径)
- 如果您已经有
resourcesolver
或getResource(path)
也可以resolve(path)
ResourceResolver
或其适配器:PageManager
,TagManager
,等等
我甚至认为,在内部,所有这些都以会话结束。getNode(path)
作为资源解析程序
依赖于会话
(您可以对其进行调整),并且请求。getResource()
可能使用解析(path)
方法。没有“最佳方法”。如果您已经有一个节点对象,那么如果您正在尝试获取,例如。。。所有的子项都是listChildren()。实际上,最好的方法是用例
真正的问题是为什么需要一个特定的节点。除非您在JCR中创建数据,否则通常不需要节点接口。99%的时间系统为您处理节点创建,因此您正在读取数据,在这种情况下,resource.Adapto(ValueMap.class)可能是您最好的选择
如果你能提供更多的细节,说明你为什么会关心这个问题,我可以进一步帮助你。没有“最佳方法”。如果您已经有一个节点对象,那么如果您正在尝试获取,例如。。。所有的子项都是listChildren()。实际上,最好的方法是用例
真正的问题是为什么需要一个特定的节点。除非您在JCR中创建数据,否则通常不需要节点接口。99%的时间系统为您处理节点创建,因此您正在读取数据,在这种情况下,resource.Adapto(ValueMap.class)可能是您最好的选择
如果您添加更多关于为什么关注此问题和上下文的详细信息,我可以进一步帮助您。什么是用例?什么是用例?