І клас AbstractAtomFeedView, і клас AbstractRssFeedView успадковуються від базового класу AbstractFeedView і використовуються для передачі подання вебканалів Atom та RSS відповідно. Вони ґрунтуються на проєкті ROME і знаходяться в пакеті org.springframework.web.servlet.view. feed.

AbstractAtomFeedView вимагає від тебе реалізації методу buildFeedEntries() і, опціонально, перевизначення методу buildFeedMetadata() (реалізація за замовчуванням порожня). У цьому прикладі показано, як це зробити:

Java
public class SampleContentAtomView extends AbstractAtomFeedView {
    @Override
    protected void buildFeedMetadata(Map<String, Object> model,
            Feed feed, HttpServletRequest request) {
        /// реалізацію пропущено
    }
    @Override
    protected List<Entry> buildFeedEntries(Map<String, Object> model,
            HttpServletRequest request, HttpServletResponse response) throws Exception {
        /// реалізацію пропущено
    }
}
Kotlin
class SampleContentAtomView : AbstractAtomFeedView() {
    override fun buildFeedMetadata(model: Map<String, Any>,
            feed: Feed, request: HttpServletRequest) {
        /// реалізацію пропущено
    }
    override fun buildFeedEntries(model: Map<String, Any>,
            request: HttpServletRequest, response: HttpServletResponse): List<Entry> {
        /// реалізацію пропущено
    }
}

Аналогічні вимоги застосовуються і для реалізації AbstractRssFeedView, як показано в наступному прикладі:

Java
public class SampleContentRssView extends AbstractRssFeedView {
    @Override
    protected void buildFeedMetadata(Map<String, Object> model,
            Channel feed, HttpServletRequest request) {
        /// реалізацію пропущено
    }
    @Override
    protected List<Item> buildFeedItems(Map<String, Object> model,
            HttpServletRequest request, HttpServletResponse response) throws Exception {
        /// реалізацію пропущено
    }
}
Kotlin
class SampleContentRssView : AbstractRssFeedView() {
    override fun buildFeedMetadata(model: Map<String, Any>,
                                feed: Channel, request: HttpServletRequest) {
        /// реалізацію пропущено
    }
    override fun buildFeedItems(model: Map<String, Any>,
            request: HttpServletRequest, response: HttpServletResponse): List<Item> {
        /// реалізацію пропущено
    }
}

Методи buildFeedItems() та buildFeedEntries() передають HTTP-запит, якщо необхідно отримати доступ до регіональних налаштувань. HTTP-відповідь передається лише для встановлення cookies або інших заголовків HTTP. Канал автоматично записується до об'єкта відповіді після повернення методу.

Приклад створення подання каналу Atom див. у пості Алефа Арендсена.