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()
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.AbstractView |
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposePathVariables, setRequestContextAttribute, writeToResponse |
AbstractJasperReportsSingleFormatView
public AbstractJasperReportsSingleFormatView()
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 rendermodel
- the map containing report parametersresponse
- 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 usepopulatedReport
- the populated JasperPrint
to renderresponse
- 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 usepopulatedReport
- the populated JasperPrint
to renderresponse
- 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()