Слинг ресурс против узлов

У меня возникли проблемы с пониманием, почему вы используете ресурсы вместо узлов в стропе. Скажем, у меня есть что-то простое для доступа к узлам, как показано ниже:

NodeIterator headerNode = currentNode.getNodes();
//loop through and do something with the nodes.

Как бы вы работали в ресурсах вместо узлов. Я'Я слышал, что вы должны работать в ресурсах, а не в узлах. Но почему? Я действительно нене понимаю, какая польза для этого будет. Я думаю я'Мне трудно понять, что такое ресурсы. Я знаю тамдокументация, но я могуне найти примеры кода о том, как их использовать.

 santiagozky17 мая 2013 г., 12:46
ресурс гораздо более сложный и мощный объект. например, метод adaptTo () чрезвычайно полезен. Вы даже можете написать свои собственные адаптеры!

Ответы на вопрос(1)

Решение Вопроса

http://sling.apache.org/documentation/the-sling-engine/resources.html который объясняет концепцию ресурсов и как вы работаете с ними.

API несколько отличается от API узлов JCR, но использует аналогичные концепции. Одна вещь, которая определенно проще с ресурсами, это доступ к значениям свойств, поскольку вы получаете их в ValueMap, а отсутствующие свойства неНапример, исключения.

Приведенные выше документы должны объяснить основные закономерности, вкратце это:

Вы получаете ресурс из запроса Sling или с помощью службы ResourceResolverРесурс может быть адаптирован к ValueMap для доступа к его свойствам.Ресурс может быть адаптирован к узлу, если вам нужно переключиться на JCR APIАналогично Resource.listChildren (...), похож на Node.getNodes ()Resource.getResourceResolver () предоставляет ResourceResolver, который предоставляет доступ к другим ресурсам путем поиска или по пути.

Ресурс существует, чтобы абстрагировать хранилище контента, сделать возможным использование в Sling других бэкэндов, кроме JCR, и объединить Slings взгляд на данные и контент, которые он использует внутри.

Для программирования на уровне приложений, на мой взгляд, API JCR очень хорош, я бы неВместо этого используйте Ресурс только ради этого. Но в некоторых случаях Resource API упрощает работу.

Ваш ответ на вопрос