## org.springframework.web.servlet.view.jasperreports
Class AbstractJasperReportsSingleFormatView

    java.lang.Object
      org.springframework.context.support.ApplicationObjectSupport
          org.springframework.web.context.support.WebApplicationObjectSupport
              org.springframework.web.servlet.view.AbstractView
                  org.springframework.web.servlet.view.AbstractUrlBasedView
                      org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView
                          org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsSingleFormatView

All Implemented Interfaces:
  Aware, BeanNameAware, InitializingBean, ApplicationContextAware, ServletContextAware, View

Direct Known Subclasses:
  ConfigurableJasperReportsView, JasperReportsCsvView, JasperReportsHtmlView, JasperReportsPdfView, JasperReportsXlsView

    public abstract class AbstractJasperReportsSingleFormatView

extends AbstractJasperReportsView

Extends `AbstractJasperReportsView` to provide basic rendering logic for views that use a fixed format, e.g. always PDF or always HTML.

Subclasses need to implement two template methods: `createExporter` to create a JasperReports exporter for a specific output format, and `useWriter` to determine whether to write text or binary content.

Since:
  1.1.5
Author:
  Rob Harrop, Juergen Hoeller
See Also:
  `createExporter()`, `useWriter()`

Field Summary

Fields inherited from class org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView
`CONTENT_DISPOSITION_INLINE, HEADER_CONTENT_DISPOSITION`

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`

Constructor Summary
`AbstractJasperReportsSingleFormatView()`

Method Summary
`protected abstract net.sf.jasperreports.engine.JRExporter` `createExporter()` Create a JasperReports exporter for a specific output format, which will be used to render the report to the HTTP response.
`protected boolean` `generatesDownloadContent()` Return whether this view generates download content (typically binary content like PDF or Excel files).
`protected void` `renderReport(net.sf.jasperreports.engine.JasperPrint populatedReport, Map<String,Object> model, HttpServletResponse response)` Perform rendering for a single Jasper Reports exporter, that is, for a pre-defined output format.
`protected void` `renderReportUsingOutputStream(net.sf.jasperreports.engine.JRExporter exporter, net.sf.jasperreports.engine.JasperPrint populatedReport, HttpServletResponse response)` We need to write binary output to the response OutputStream.
`protected void` `renderReportUsingWriter(net.sf.jasperreports.engine.JRExporter exporter, net.sf.jasperreports.engine.JasperPrint populatedReport, HttpServletResponse response)` We need to write text to the response Writer.
`protected abstract boolean` `useWriter()` Return whether to use a `java.io.Writer` to write text content to the HTTP response.

Methods inherited from class org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView

`convertExporterParameters, convertParameterValue, convertReportData, convertToExporterParameter, createReport, exposeLocalizationContext, fillReport, getConvertedExporterParameters, getExporterParameter, getExporterParameters, getJdbcDataSource, getReport, getReportData, getReportDataTypes, initApplicationContext, isUrlRequired, loadReport, loadReport, onInit, postProcessReport, renderMergedOutputModel, setConvertedExporterParameters, setExporterParameters, setHeaders, setJdbcDataSource, setReportDataKey, setSubReportDataKeys, setSubReportUrls`

Methods inherited from class org.springframework.web.servlet.view.AbstractUrlBasedView
`afterPropertiesSet, checkResource, getUrl, setUrl, toString`

Methods inherited from class org.springframework.web.servlet.view.AbstractView

`addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposePathVariables, setRequestContextAttribute, 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, requiredContextClass, setApplicationContext`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### AbstractJasperReportsSingleFormatView

    public AbstractJasperReportsSingleFormatView()

Method Detail

### generatesDownloadContent

    protected boolean generatesDownloadContent()

  Description copied from class: `AbstractView`
  Return whether this view generates download content (typically binary content like PDF or Excel files).

  The default implementation returns `false`. Subclasses are encouraged to return `true` here if they know that they are generating download content that requires temporary caching on the client side, typically via the response OutputStream.

  Overrides:
    `generatesDownloadContent` in class `AbstractView`
  See Also:
    `AbstractView.prepareResponse(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)`, `ServletResponse.getOutputStream()`

### renderReport

    protected void renderReport(net.sf.jasperreports.engine.JasperPrint populatedReport,
                                Map<String,Object> model,
                                HttpServletResponse response)
                         throws Exception

  Perform rendering for a single Jasper Reports exporter, that is, for a pre-defined output format.

  Specified by:
    `renderReport` in class `AbstractJasperReportsView`
  Parameters:
    `populatedReport` - the populated `JasperPrint` to render
    `model` - the map containing report parameters
    `response` - the HTTP response the report should be rendered to
  Throws:
    `Exception` - if rendering failed
  See Also:
    `AbstractView.getContentType()`, `ServletResponse.setContentType(java.lang.String)`, `ServletResponse.setCharacterEncoding(java.lang.String)`

### renderReportUsingWriter

    protected void renderReportUsingWriter(net.sf.jasperreports.engine.JRExporter exporter,
                                           net.sf.jasperreports.engine.JasperPrint populatedReport,
                                           HttpServletResponse response)
                                    throws Exception

  We need to write text to the response Writer.

  Parameters:
    `exporter` - the JasperReports exporter to use
    `populatedReport` - the populated `JasperPrint` to render
    `response` - the HTTP response the report should be rendered to
  Throws:
    `Exception` - if rendering failed

### renderReportUsingOutputStream

    protected void renderReportUsingOutputStream(net.sf.jasperreports.engine.JRExporter exporter,
                                                 net.sf.jasperreports.engine.JasperPrint populatedReport,
                                                 HttpServletResponse response)
                                          throws Exception

  We need to write binary output to the response OutputStream.

  Parameters:
    `exporter` - the JasperReports exporter to use
    `populatedReport` - the populated `JasperPrint` to render
    `response` - the HTTP response the report should be rendered to
  Throws:
    `Exception` - if rendering failed

### createExporter

    protected abstract net.sf.jasperreports.engine.JRExporter createExporter()

  Create a JasperReports exporter for a specific output format, which will be used to render the report to the HTTP response.

  The `useWriter` method determines whether the output will be written as text or as binary content.

  See Also:
    `useWriter()`

### useWriter

    protected abstract boolean useWriter()

  Return whether to use a `java.io.Writer` to write text content to the HTTP response. Else, a `java.io.OutputStream` will be used, to write binary content to the response.

  See Also:
    `ServletResponse.getWriter()`, `ServletResponse.getOutputStream()`