public abstract class AbstractRssFeedView extends AbstractFeedView<Channel>
>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 buildFeedItems(java.util.Map<java.lang.String, java.lang.Object>, 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)
,
buildFeedItems(java.util.Map<java.lang.String, java.lang.Object>, HttpServletRequest, HttpServletResponse)
DEFAULT_CONTENT_TYPE
logger
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
Constructor and Description |
---|
AbstractRssFeedView() |
Modifier and Type | Method and Description |
---|---|
protected void |
buildFeedEntries(java.util.Map<java.lang.String,java.lang.Object> model,
Channel channel,
HttpServletRequest request,
HttpServletResponse response)
Invokes
buildFeedItems(Map, HttpServletRequest, HttpServletResponse)
to get a list of feed items. |
protected abstract java.util.List<Item> |
buildFeedItems(java.util.Map<java.lang.String,java.lang.Object> model,
HttpServletRequest request,
HttpServletResponse response)
Subclasses must implement this method to build feed items, given the model.
|
protected Channel |
newFeed()
Create a new Channel instance to hold the entries.
|
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
protected Channel newFeed()
By default returns an RSS 2.0 channel, but the subclass can specify any channel.
newFeed
in class AbstractFeedView<Channel>
protected final void buildFeedEntries(java.util.Map<java.lang.String,java.lang.Object> model, Channel channel, HttpServletRequest request, HttpServletResponse response) throws java.lang.Exception
buildFeedItems(Map, HttpServletRequest, HttpServletResponse)
to get a list of feed items.buildFeedEntries
in class AbstractFeedView<Channel>
model
- the model Mapchannel
- 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<Item> buildFeedItems(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 buildingItem