CQ - 检查资源对象是否有效
CQ - Check whether the resource object is valid
我需要检查以下 'resource' 对象的资源对象是否有效。例如,如果我在这种情况下传递 url 之类的任何 getResource("some path which is not available in cq")
,我需要对其进行限制
Resource resource= resourceResolver.getResource(/content/rc/test/jcr:content");
Node node = resource.adaptTo(Node.class);
String parentPagePath= node.getProperty("someproperty").getValue().getString();
有什么办法吗?
如果您使用 getResource
,空检查就足够了。如果你使用resolve
,那么你必须使用!ResourceUtil.isNonExistingResource(resource)
。
在节点级别,您可以使用 hasProperty
.
检查 属性 是否存在
正如 Thomas 所说,ResourceResolver.getResource()
returns null
如果您作为参数提供的路径不存在。对资源进行空检查应该可以解决您的问题。
Resource resource= resourceResolver.getResource("some path which is not available in cq");
if(resource != null){
Node node = resource.adaptTo(Node.class);
String parentPagePath= node.getProperty("someproperty").getValue().getString();
}
附注:
大多数情况下使用包装比使用较低级别API更好,除非有令人信服的理由这样做。
因此,我建议您处理 ValueMap(Sling API) to retrieve/set properties of Node rather than dealing with the Node (JCR API)
Resource resource= resourceResolver.getResource("some path which is not available in cq");
if(resource != null){
ValueMap mapWithAllTheValues = resource.adaptTo(ValueMap.class);
String parentPagePath= mapWithAllTheValues.get("someproperty", String.class);
}
我需要检查以下 'resource' 对象的资源对象是否有效。例如,如果我在这种情况下传递 url 之类的任何 getResource("some path which is not available in cq")
,我需要对其进行限制
Resource resource= resourceResolver.getResource(/content/rc/test/jcr:content");
Node node = resource.adaptTo(Node.class);
String parentPagePath= node.getProperty("someproperty").getValue().getString();
有什么办法吗?
如果您使用 getResource
,空检查就足够了。如果你使用resolve
,那么你必须使用!ResourceUtil.isNonExistingResource(resource)
。
在节点级别,您可以使用 hasProperty
.
正如 Thomas 所说,ResourceResolver.getResource()
returns null
如果您作为参数提供的路径不存在。对资源进行空检查应该可以解决您的问题。
Resource resource= resourceResolver.getResource("some path which is not available in cq");
if(resource != null){
Node node = resource.adaptTo(Node.class);
String parentPagePath= node.getProperty("someproperty").getValue().getString();
}
附注: 大多数情况下使用包装比使用较低级别API更好,除非有令人信服的理由这样做。
因此,我建议您处理 ValueMap(Sling API) to retrieve/set properties of Node rather than dealing with the Node (JCR API)
Resource resource= resourceResolver.getResource("some path which is not available in cq");
if(resource != null){
ValueMap mapWithAllTheValues = resource.adaptTo(ValueMap.class);
String parentPagePath= mapWithAllTheValues.get("someproperty", String.class);
}