І клас AbstractAtomFeedView, і клас AbstractRssFeedView успадковуються від базового класу AbstractFeedView і використовуються для передачі подання вебканалів Atom та RSS відповідно. Вони ґрунтуються на проєкті ROME і знаходяться в пакеті org.springframework.web.servlet.view. feed.
AbstractAtomFeedView вимагає від тебе реалізації методу buildFeedEntries() і, опціонально, перевизначення методу buildFeedMetadata() (реалізація за замовчуванням порожня). У цьому прикладі показано, як це зробити:
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 {
/// реалізацію пропущено
}
}
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, як показано в наступному прикладі:
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 {
/// реалізацію пропущено
}
}
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 див. у пості Алефа Арендсена.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ