如何设置资源属性

如何设置资源属性

本文介绍了如何设置资源属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Sling 对象。设置或更新其属性的最佳方法是什么?

I have a Sling Resource object. What is the best way to set or update its property?

推荐答案

这取决于Sling版本:

It depends on the Sling version:

吊索> = 2.3.0(自CQ 5.6起)

使您的资源适应,使用其 put 方法并提交资源解析器:

Adapt your resource to ModifiableValueMap, use its put method and commit the resource resolver:

ModifiableValueMap map = resource.adaptTo(ModifiableValueMap.class);
map.put("property", "value");
resource.getResourceResolver().commit();

吊索< 2.3.0(CQ 5.5及更低版本)

将您的资源调整为,使用其 put 保存方法:

Adapt your resource to PersistableValueMap, use its put and save methods:

PersistableValueMap map = resource.adaptTo(PersistableValueMap.class);
map.put("property", "value");
map.save();

JCR API

您还可以使资源适应 Node 并使用JCR API更改属性。但是,最好坚持一个抽象层,在这种情况下,我们会以某种方式破坏Sling提供的资源抽象。

You may also adapt the resource to Node and use the JCR API to change property. However, it's a good idea to stick to one abstraction layer and in this case we somehow break the Resource abstraction provided by Sling.

Node node = resource.adaptTo(Node.class);
node.setProperty("property", "value");
node.getSession().save();

这篇关于如何设置资源属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-30 06:51