Va AbstractAtomFeedView klassi hamda AbstractRssFeedView klassi AbstractFeedView bazaviy klassidan meros bo'lib keladi va Atom hamda RSS veb-kanallarining taqdimotini yetkazish uchun ishlatiladi. Ular ROME loyihasiga asoslangan va org.springframework.web.servlet.view.feed paketida joylashgan.
AbstractAtomFeedView sizdan buildFeedEntries() metodini amalga oshirishni talab qiladi va ixtiyoriy ravishda buildFeedMetadata() metodini qayta yoza olasiz (default realizatsiyasi bo'sh). Quyidagi misolda buni qanday qilish ko'rsatilgan:
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> {
/// реализация опущена
}
}
Xuddi shunday talablar AbstractRssFeedView realizatsiyasi uchun ham qo'llaniladi, quyidagi misolda ko'rsatilgandek:
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() va buildFeedEntries() metodlari HTTP so'rovni uzatadi, agar regional sozlamalarga kirish kerak bo'lsa. HTTP javobi faqat cookies yoki boshqa HTTP sarlavhalarini o'rnatish uchun uzatiladi. Kanal avtomatik ravishda metod qaytganidan keyin javob ob'ektiga yoziladi.
Atom kanalining taqdimotini yaratish misoli uchun Spring jamoasi blogidagi Alef Arendsen postini ko'ring.
GO TO FULL VERSION