RSS 和 Atom

AbstractAtomFeedViewAbstractRssFeedView 都繼承自 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 團隊部落格 文章