RSS 和 Atom
AbstractAtomFeedView
和 AbstractRssFeedView
皆繼承自 AbstractFeedView
基礎類別,並分別用於提供 Atom 和 RSS Feed 視圖。它們基於 ROME 專案,且位於 org.springframework.web.servlet.view.feed
套件中。
AbstractAtomFeedView
要求您實作 buildFeedEntries()
方法,並可選擇性地覆寫 buildFeedMetadata()
方法(預設實作為空)。以下範例示範如何操作
-
Java
-
Kotlin
public class SampleContentAtomView extends AbstractAtomFeedView {
@Override
protected void buildFeedMetadata(Map<String, Object> model,
Feed feed, HttpServletRequest request) {
// implementation omitted
}
@Override
protected List<Entry> buildFeedEntries(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response) throws Exception {
// implementation omitted
}
}
class SampleContentAtomView : AbstractAtomFeedView() {
override fun buildFeedMetadata(model: Map<String, Any>,
feed: Feed, request: HttpServletRequest) {
// implementation omitted
}
override fun buildFeedEntries(model: Map<String, Any>,
request: HttpServletRequest, response: HttpServletResponse): List<Entry> {
// implementation omitted
}
}
實作 AbstractRssFeedView
也有類似的要求,如下列範例所示
-
Java
-
Kotlin
public class SampleContentRssView extends AbstractRssFeedView {
@Override
protected void buildFeedMetadata(Map<String, Object> model,
Channel feed, HttpServletRequest request) {
// implementation omitted
}
@Override
protected List<Item> buildFeedItems(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response) throws Exception {
// implementation omitted
}
}
class SampleContentRssView : AbstractRssFeedView() {
override fun buildFeedMetadata(model: Map<String, Any>,
feed: Channel, request: HttpServletRequest) {
// implementation omitted
}
override fun buildFeedItems(model: Map<String, Any>,
request: HttpServletRequest, response: HttpServletResponse): List<Item> {
// implementation omitted
}
}
buildFeedItems()
和 buildFeedEntries()
方法會傳入 HTTP 請求,以防您需要存取 Locale。HTTP 回應僅用於設定 Cookie 或其他 HTTP 標頭。方法傳回後,Feed 會自動寫入回應物件。
如需建立 Atom 視圖的範例,請參閱 Alef Arendsen 的 Spring Team Blog 文章。