Class AbstractFeedView<T extends com.rometools.rome.feed.WireFeed>
- Type Parameters:
T
- theWireFeed
type
- All Implemented Interfaces:
Aware
,BeanNameAware
,ApplicationContextAware
,ServletContextAware
,View
- Direct Known Subclasses:
AbstractAtomFeedView
,AbstractRssFeedView
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 typically extend from either
AbstractRssFeedView
or AbstractAtomFeedView
instead of from this class.
Thanks to Jettro Coenradie and Sergio Bossa for the original feed view prototype!
- Since:
- 3.0
- Author:
- Arjen Poutsma, Juergen Hoeller
- See Also:
-
Field Summary
Fields inherited from class org.springframework.web.servlet.view.AbstractView
DEFAULT_CONTENT_TYPE
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport
logger
Fields inherited from interface org.springframework.web.servlet.View
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
buildFeedEntries
(Map<String, Object> model, T feed, HttpServletRequest request, HttpServletResponse response) Subclasses must implement this method to build feed entries, given the model.protected void
buildFeedMetadata
(Map<String, Object> model, T feed, HttpServletRequest request) Populate the feed metadata (title, link, description, etc.).protected abstract T
newFeed()
Create a new feed to hold the entries.protected final void
renderMergedOutputModel
(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) Subclasses must implement this method to actually render the view.Methods inherited from class org.springframework.web.servlet.view.AbstractView
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, formatViewName, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, toString, writeToResponse
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
-
Constructor Details
-
AbstractFeedView
public AbstractFeedView()
-
-
Method Details
-
renderMergedOutputModel
protected final void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws ExceptionDescription copied from class:AbstractView
Subclasses must implement this method to actually render the view.The first step will be preparing the request: In the JSP case, this would mean setting model objects as request attributes. The second step will be the actual rendering of the view, for example including the JSP via a RequestDispatcher.
- Specified by:
renderMergedOutputModel
in classAbstractView
- Parameters:
model
- combined output Map (nevernull
), with dynamic values taking precedence over static attributesrequest
- current HTTP requestresponse
- current HTTP response- Throws:
Exception
- if rendering failed
-
newFeed
Create a new feed to hold the entries.- Returns:
- the newly created Feed instance
-
buildFeedMetadata
Populate the feed metadata (title, link, description, etc.).Default is an empty implementation. Subclasses can override this method to add meta fields such as title, link description, etc.
- Parameters:
model
- the model, in case meta information must be populated from itfeed
- the feed being populatedrequest
- in case we need locale etc. Shouldn't look at attributes.
-
buildFeedEntries
protected abstract void buildFeedEntries(Map<String, Object> model, T feed, HttpServletRequest request, HttpServletResponse response) throws ExceptionSubclasses must implement this method to build feed entries, given the model.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.
- Parameters:
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.- Throws:
Exception
- any exception that occurred during building
-