public abstract class AbstractAtomFeedView extends AbstractFeedView<Feed>
>NOTE: As of Spring 4.1, this is based on the com.rometools
variant of ROME, version 1.5. Please upgrade your build dependency.
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(java.util.Map<java.lang.String, java.lang.Object>, T, HttpServletRequest)
and buildFeedEntries(java.util.Map<java.lang.String, java.lang.Object>, Feed, HttpServletRequest, HttpServletResponse)
.
Thanks to Jettro Coenradie and Sergio Bossa for the original feed view prototype!
AbstractFeedView.buildFeedMetadata(java.util.Map<java.lang.String, java.lang.Object>, T, HttpServletRequest)
,
buildFeedEntries(java.util.Map<java.lang.String, java.lang.Object>, Feed, HttpServletRequest, HttpServletResponse)
,
Atom Syndication FormatModifier and Type | Field and Description |
---|---|
static java.lang.String |
DEFAULT_FEED_TYPE |
private java.lang.String |
feedType |
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(java.util.Map<java.lang.String,java.lang.Object> model,
Feed feed,
HttpServletRequest request,
HttpServletResponse response)
Invokes
buildFeedEntries(Map, HttpServletRequest, HttpServletResponse)
to get a list of feed entries. |
protected abstract java.util.List<Entry> |
buildFeedEntries(java.util.Map<java.lang.String,java.lang.Object> model,
HttpServletRequest request,
HttpServletResponse response)
Subclasses must implement this method to build feed entries, given the model.
|
protected Feed |
newFeed()
Create a new Feed instance to hold the entries.
|
void |
setFeedType(java.lang.String feedType)
Set the Rome feed type to use.
|
buildFeedMetadata, renderMergedOutputModel
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, toString, writeToResponse
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
getApplicationContext, getMessageSourceAccessor, initApplicationContext, requiredContextClass, setApplicationContext
public static final java.lang.String DEFAULT_FEED_TYPE
private java.lang.String feedType
public void setFeedType(java.lang.String feedType)
Defaults to Atom 1.0.
Feed#setFeedType(String)
,
DEFAULT_FEED_TYPE
protected Feed newFeed()
By default returns an Atom 1.0 feed, but the subclass can specify any Feed.
newFeed
in class AbstractFeedView<Feed>
setFeedType(String)
protected final void buildFeedEntries(java.util.Map<java.lang.String,java.lang.Object> model, Feed feed, HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception
buildFeedEntries(Map, HttpServletRequest, HttpServletResponse)
to get a list of feed entries.buildFeedEntries
in class AbstractFeedView<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.java.lang.Exception
- any exception that occurred during buildingprotected abstract java.util.List<Entry> buildFeedEntries(java.util.Map<java.lang.String,java.lang.Object> model, HttpServletRequest request, HttpServletResponse response) throws java.lang.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.java.lang.Exception
- any exception that occurred during document buildingEntry