跳到主要内容

RSS 和 Atom

ChatGPT-4o-mini 中英对照 RSS and Atom

AbstractAtomFeedViewAbstractRssFeedView 都继承自 AbstractFeedView 基类,分别用于提供 Atom 和 RSS Feed 视图。它们基于 ROME 项目,位于包 org.springframework.web.servlet.view.feed 中。

AbstractAtomFeedView 要求您实现 buildFeedEntries() 方法,并可选择性地重写 buildFeedMetadata() 方法(默认实现为空)。以下示例演示了如何做到这一点:

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
}
}
java

实现 AbstractRssFeedView 的类似要求,如下例所示:

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
}
}
java

buildFeedItems()buildFeedEntries() 方法传入 HTTP 请求,以便您需要访问 Locale 的情况。HTTP 响应仅用于设置 cookies 或其他 HTTP 头。该 feed 在方法返回后会自动写入响应对象。

有关创建 Atom 视图的示例,请参见 Alef Arendsen 的 Spring 团队博客 条目