І клас 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 див. у пості Алефа Арендсена.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ