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 チームブログエントリ (英語) を参照してください。