Top Description Fields Constructors Methods
org.springframework.web.servlet.view.feed

public abstract Class AbstractFeedView<T extends WireFeed>

extends AbstractView
Class Inheritance
Known Direct Subclasses
org.springframework.web.servlet.view.feed.AbstractRssFeedView, org.springframework.web.servlet.view.feed.AbstractAtomFeedView
Type Parameters
<T>
the WireFeed type
Imports
java.io.OutputStreamWriter, java.util.Map, com.rometools.rome.feed.WireFeed, com.rometools.rome.io.WireFeedOutput, jakarta.servlet.ServletOutputStream, jakarta.servlet.http.HttpServletRequest, .HttpServletResponse, org.springframework.util.StringUtils, org.springframework.web.servlet.view.AbstractView

Abstract base class for Atom and RSS Feed views, using the ROME package.

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!

Authors
Arjen Poutsma, Juergen Hoeller
Since
3.0
See Also
AbstractRssFeedView, AbstractAtomFeedView

Field Summary

Inherited from org.springframework.web.servlet.view.AbstractView:
DEFAULT_CONTENT_TYPE

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected abstract void
buildFeedEntries(Map<String, Object>
the model Map
model
,
T
the feed to add entries to
feed
,
HttpServletRequest
in case we need locale etc. Shouldn't look at attributes.
request
,
HttpServletResponse
in case we need to set cookies. Shouldn't write to it.
response
)

Subclasses must implement this method to build feed entries, given the model.

protected void
buildFeedMetadata(Map<String, Object>
the model, in case meta information must be populated from it
model
,
T
the feed being populated
feed
,
HttpServletRequest
in case we need locale etc. Shouldn't look at attributes.
request
)

Populate the feed metadata (title, link, description, etc.).

protected abstract T

Returns:

the newly created Feed instance
newFeed
()

Create a new feed to hold the entries.

protected final void
renderMergedOutputModel(Map<String, Object>
combined output Map (never null), with dynamic values taking precedence over static attributes
model
,
HttpServletRequest
current HTTP request
request
,
HttpServletResponse
current HTTP response
response
)

Implements abstract org.springframework.web.servlet.view.AbstractView.renderMergedOutputModel.

Subclasses must implement this method to actually render the view.

Inherited from org.springframework.web.servlet.view.AbstractView:
addStaticAttributecreateMergedOutputModelcreateRequestContextcreateTemporaryOutputStreamexposeModelAsRequestAttributesformatViewNamegeneratesDownloadContentgetAttributesMapgetBeanNamegetContentTypegetRequestContextAttributegetRequestToExposegetStaticAttributesisExposePathVariablesprepareResponserendersetAttributessetAttributesCSVsetAttributesMapsetBeanNamesetContentTypesetExposeContextBeansAsAttributessetExposedContextBeanNamessetExposePathVariablessetRequestContextAttributesetResponseContentTypetoStringwriteToResponse

Constructor Detail

AbstractFeedViewback to summary
public AbstractFeedView()

Method Detail

buildFeedEntriesback to summary
protected abstract void buildFeedEntries(Map<String, Object> model, T feed, HttpServletRequest request, HttpServletResponse response) throws Exception

Subclasses 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:Map<String, Object>

the model Map

feed:T

the feed to add entries to

request:HttpServletRequest

in case we need locale etc. Shouldn't look at attributes.

response:HttpServletResponse

in case we need to set cookies. Shouldn't write to it.

Exceptions
Exception:
any exception that occurred during building
buildFeedMetadataback to summary
protected void buildFeedMetadata(Map<String, Object> model, T feed, HttpServletRequest request)

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:Map<String, Object>

the model, in case meta information must be populated from it

feed:T

the feed being populated

request:HttpServletRequest

in case we need locale etc. Shouldn't look at attributes.

newFeedback to summary
protected abstract T newFeed()

Create a new feed to hold the entries.

Returns:T

the newly created Feed instance

renderMergedOutputModelback to summary
protected final void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception

Implements abstract org.springframework.web.servlet.view.AbstractView.renderMergedOutputModel.

Doc from org.springframework.web.servlet.view.AbstractView.renderMergedOutputModel.

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.

Parameters
model:Map<String, Object>

combined output Map (never null), with dynamic values taking precedence over static attributes

request:HttpServletRequest

current HTTP request

response:HttpServletResponse

current HTTP response

Annotations
@Override
Exceptions
Exception:
if rendering failed