org.springframework.web.servlet
Interface View

All Known Implementing Classes:
AbstractAtomFeedView, AbstractExcelView, AbstractFeedView, AbstractJasperReportsSingleFormatView, AbstractJasperReportsView, AbstractJExcelView, AbstractPdfStamperView, AbstractPdfView, AbstractRssFeedView, AbstractTemplateView, AbstractUrlBasedView, AbstractView, AbstractXsltView, ConfigurableJasperReportsView, FreeMarkerView, InternalResourceView, JasperReportsCsvView, JasperReportsHtmlView, JasperReportsMultiFormatView, JasperReportsPdfView, JasperReportsXlsView, JstlView, MarshallingView, RedirectView, TilesView, VelocityLayoutView, VelocityToolboxView, VelocityView, XsltView

public interface View

MVC View for a web interaction. Implementations are responsible for rendering content, and exposing the model. A single view exposes multiple model attributes.

This class and the MVC approach associated with it is discussed in Chapter 12 of Expert One-On-One J2EE Design and Development by Rod Johnson (Wrox, 2002).

View implementations may differ widely. An obvious implementation would be JSP-based. Other implementations might be XSLT-based, or use an HTML generation library. This interface is designed to avoid restricting the range of possible implementations.

Views should be beans. They are likely to be instantiated as beans by a ViewResolver. As this interface is stateless, view implementations should be thread-safe.

Author:
Rod Johnson
See Also:
AbstractView, InternalResourceView

Method Summary
 java.lang.String getContentType()
          Return the content type of the view, if predetermined.
 void render(java.util.Map<java.lang.String,?> model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Render the view given the specified model.
 

Method Detail

getContentType

java.lang.String getContentType()
Return the content type of the view, if predetermined.

Can be used to check the content type upfront, before the actual rendering process.

Returns:
the content type String (optionally including a character set), or null if not predetermined.

render

void render(java.util.Map<java.lang.String,?> model,
            javax.servlet.http.HttpServletRequest request,
            javax.servlet.http.HttpServletResponse response)
            throws java.lang.Exception
Render the view given the specified model.

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 with name Strings as keys and corresponding model objects as values (Map can also be null in case of empty model)
request - current HTTP request
response - HTTP response we are building
Throws:
java.lang.Exception - if rendering failed