RSS と Atom

AbstractAtomFeedView と AbstractRssFeedView は両方とも AbstractFeedView 基本クラスを継承し、それぞれ Atom ビューと RSS フィードビューを提供するために使用されます。それらは 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 リクエストを渡します。HTTP レスポンスは、Cookie または他の HTTP ヘッダーの設定のためにのみ渡されます。フィードは、メソッドが戻った後、レスポンスオブジェクトに自動的に書き込まれます。

Atom ビューの作成例については、Alef Arendsen の Spring チームブログエントリ (英語) を参照してください。