public abstract class AbstractAtomFeedView extends AbstractFeedView<com.sun.syndication.feed.atom.Feed>
Application-specific view classes will extend this class. The view will be held in the subclass itself, not in a template.
Main entry points are the AbstractFeedView.buildFeedMetadata(Map, WireFeed, HttpServletRequest)
and
buildFeedEntries(Map, HttpServletRequest, HttpServletResponse)
.
Thanks to Jettro Coenradie and Sergio Bossa for the original feed view prototype!
AbstractFeedView.buildFeedMetadata(Map, WireFeed, HttpServletRequest)
,
buildFeedEntries(Map, HttpServletRequest, HttpServletResponse)
,
Atom Syndication FormatModifier and Type | Field and Description |
---|---|
static String |
DEFAULT_FEED_TYPE |
DEFAULT_CONTENT_TYPE
logger
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
Constructor and Description |
---|
AbstractAtomFeedView() |
Modifier and Type | Method and Description |
---|---|
protected void |
buildFeedEntries(Map<String,Object> model,
com.sun.syndication.feed.atom.Feed feed,
HttpServletRequest request,
HttpServletResponse response)
Invokes
buildFeedEntries(Map, HttpServletRequest, HttpServletResponse)
to get a list of feed entries. |
protected abstract List<com.sun.syndication.feed.atom.Entry> |
buildFeedEntries(Map<String,Object> model,
HttpServletRequest request,
HttpServletResponse response)
Subclasses must implement this method to build feed entries, given the model.
|
protected com.sun.syndication.feed.atom.Feed |
newFeed()
Create a new Feed instance to hold the entries.
|
void |
setFeedType(String feedType)
Sets the Rome feed type to use.
|
buildFeedMetadata, renderMergedOutputModel
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposePathVariables, setRequestContextAttribute, setResponseContentType, toString, writeToResponse
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
getApplicationContext, getMessageSourceAccessor, initApplicationContext, requiredContextClass, setApplicationContext
public static final String DEFAULT_FEED_TYPE
public void setFeedType(String feedType)
Defaults to Atom 1.0.
WireFeed.setFeedType(String)
,
DEFAULT_FEED_TYPE
protected com.sun.syndication.feed.atom.Feed newFeed()
By default returns an Atom 1.0 feed, but the subclass can specify any Feed.
newFeed
in class AbstractFeedView<com.sun.syndication.feed.atom.Feed>
setFeedType(String)
protected final void buildFeedEntries(Map<String,Object> model, com.sun.syndication.feed.atom.Feed feed, HttpServletRequest request, HttpServletResponse response) throws Exception
buildFeedEntries(Map, HttpServletRequest, HttpServletResponse)
to get a list of feed entries.buildFeedEntries
in class AbstractFeedView<com.sun.syndication.feed.atom.Feed>
model
- the model Mapfeed
- the feed to add entries torequest
- in case we need locale etc. Shouldn't look at attributes.response
- in case we need to set cookies. Shouldn't write to it.Exception
- any exception that occurred during buildingprotected abstract List<com.sun.syndication.feed.atom.Entry> buildFeedEntries(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception
Note that the passed-in HTTP response is just supposed to be used for setting cookies or other HTTP headers. The built feed itself will automatically get written to the response after this method returns.
model
- the model Maprequest
- in case we need locale etc. Shouldn't look at attributes.response
- in case we need to set cookies. Shouldn't write to it.Exception
- any exception that occurred during document buildingEntry