public abstract class AbstractJasperReportsSingleFormatView extends AbstractJasperReportsView
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.
createExporter(),
useWriter()CONTENT_DISPOSITION_INLINE, HEADER_CONTENT_DISPOSITIONDEFAULT_CONTENT_TYPEPATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE| Constructor and Description |
|---|
AbstractJasperReportsSingleFormatView() |
| Modifier and Type | Method and Description |
|---|---|
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. |
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, setSubReportUrlsafterPropertiesSet, checkResource, getUrl, setUrl, toStringaddStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposePathVariables, setRequestContextAttribute, setResponseContentType, writeToResponsegetServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextpublic AbstractJasperReportsSingleFormatView()
protected boolean generatesDownloadContent()
AbstractViewThe 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.
protected void renderReport(net.sf.jasperreports.engine.JasperPrint populatedReport,
Map<String,Object> model,
HttpServletResponse response)
throws Exception
renderReport in class AbstractJasperReportsViewpopulatedReport - the populated JasperPrint to rendermodel - the map containing report parametersresponse - the HTTP response the report should be rendered toException - if rendering failedAbstractView.getContentType(),
ServletResponse.setContentType(java.lang.String),
ServletResponse.setCharacterEncoding(java.lang.String)protected void renderReportUsingWriter(net.sf.jasperreports.engine.JRExporter exporter,
net.sf.jasperreports.engine.JasperPrint populatedReport,
HttpServletResponse response)
throws Exception
exporter - the JasperReports exporter to usepopulatedReport - the populated JasperPrint to renderresponse - the HTTP response the report should be rendered toException - if rendering failedprotected void renderReportUsingOutputStream(net.sf.jasperreports.engine.JRExporter exporter,
net.sf.jasperreports.engine.JasperPrint populatedReport,
HttpServletResponse response)
throws Exception
exporter - the JasperReports exporter to usepopulatedReport - the populated JasperPrint to renderresponse - the HTTP response the report should be rendered toException - if rendering failedprotected abstract net.sf.jasperreports.engine.JRExporter createExporter()
The useWriter method determines whether the
output will be written as text or as binary content.
useWriter()protected abstract boolean useWriter()
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.