RSS-Feeds mit Rome & Spring 2.5
Problem: Wie erzeuge ich einen RSS-Feed mit Rome und Spring MVC
Lösung:
Man lädt sich Rome und Spring Modules herunter und packt beide Jars in seinen Classpath.
Danach erzeugt man einen RSSView:
public class RSSView extends AbstractRssView { private static final String[] FEED_TYPE = {"rss_0.90","rss_0.91","rss_0.92","rss_0.93","rss_0.94","rss_1.0","rss_2.0","atom_0.3"}; private static final DateFormat DATE_PARSER = new SimpleDateFormat("yyyy-MM-dd"); private String description; /** * Generates the Feed. */ @SuppressWarnings("unchecked") @Override protected void buildFeed(Map model, HttpServletRequest request, HttpServletResponse response, SyndFeed feed) { feed.setFeedType(FEED_TYPE[6]); feed.setTitle("Peters Feeds"); feed.setLink(getBaseUrl()); feed.setDescription(description); SyndImage image = new SyndImageImpl(); image.setLink(getBaseUrl()); image.setUrl("URLTOIMAGE"); image.setDescription(description); image.setTitle("Peter"); feed.setImage(image); Listentries = new ArrayList (); SyndEntry entry; entry = new SyndEntryImpl(); entry.setTitle("Rome v1.0"); entry.setLink("http://wiki.java.net/bin/view/Javawsxml/Rome01"); entry.setPublishedDate(DATE_PARSER.parse("2004-06-08")); description = new SyndContentImpl(); description.setType("text/plain"); description.setValue("Initial release of Rome"); entry.setDescription(description); entries.add(entry); entry = new SyndEntryImpl(); entry.setTitle("Rome v2.0"); entry.setLink("http://wiki.java.net/bin/view/Javawsxml/Rome02"); entry.setPublishedDate(DATE_PARSER.parse("2004-06-16")); description = new SyndContentImpl(); description.setType("text/plain"); description.setValue("Bug fixes, minor API changes and some new features"); entry.setDescription(description); entries.add(entry); feed.setEntries(entries); } public void setDescription(String description) { this.description = description; } }
Anschließend erzeugt man den dazugehörigen Controller:
public class RssFeedController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { return new ModelAndView("rSSView"); } }
Als Letztes verdrahtet man alles in seiner dispatcher.xml:
...RssFeedController ...
… ab Version 3.0 des Springframework kann man das ganz einfach so machen.