RSS 和 Atom

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

AbstractAtomFeedView 要求您实现 buildFeedEntries() 方法,并可选地重写 buildFeedMetadata() 方法(默认实现为空)。以下示例展示了如何实现:

  • Java

public class SampleContentAtomView extends AbstractAtomFeedView {

  @Override
  protected void buildFeedMetadata(Map<String, Object> model,
      Feed feed, HttpServletRequest request) {
    // 省略实现
  }

  @Override
  protected List<Entry> buildFeedEntries(Map<String, Object> model,
      HttpServletRequest request, HttpServletResponse response) throws Exception {
    // 省略实现
  }
}

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

  • Java

public class SampleContentRssView extends AbstractRssFeedView {

  @Override
  protected void buildFeedMetadata(Map<String, Object> model,
      Channel feed, HttpServletRequest request) {
    // 省略实现
  }

  @Override
  protected List<Item> buildFeedItems(Map<String, Object> model,
      HttpServletRequest request, HttpServletResponse response) throws Exception {
    // 省略实现
  }
}

buildFeedItems()buildFeedEntries() 方法传入了 HTTP 请求,以防您需要访问 Locale。HTTP 响应仅用于设置 Cookie 或其他 HTTP 头。方法返回后,Feed 会自动写入响应对象。

有关创建 Atom 视图的示例,请参阅 Alef Arendsen 的 Infra Team 博客文章 使用 TODAY 的 REST 支持为应用程序添加 Atom 视图