org.springframework.web.servlet.view.jasperreports
Class JasperReportsMultiFormatView
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.JasperReportsMultiFormatView
- All Implemented Interfaces:
- ApplicationContextAware, BeanNameAware, View
- public class JasperReportsMultiFormatView
- extends AbstractJasperReportsView
Jasper Reports view class that allows for the actual rendering format to be
specified at runtime using a parameter contained in the model.
This view works on the concept of a format key and a mapping key.
The format key is used to pass the mapping key from your
Controller
to Spring through as part of the model and the
mapping key is used to map a logical format to an actual JasperReports
view class. For example you might add the following code to your
Controller
:
Map model = new HashMap();
model.put("format", "pdf");
Here format
is the format key and pdf
is
the mapping key. When rendering a report, this class looks for a
model parameter under the format key, which by default is
format
. It then uses the value of this parameter to lookup
the actual View
class to use. The default mappings for this
lookup are:
csv
- JasperReportsCsvView
html
- JasperReportsHtmlView
pdf
- JasperReportsPdfView
xls
- JasperReportsXlsView
The format key can be changed using the formatKey
property and the mapping key to view class mappings can be changed using the
formatMappings
property.
- Since:
- 1.1.5
- Author:
- Rob Harrop
- See Also:
setFormatKey(String)
,
setFormatMappings(java.util.Properties)
Method Summary |
protected void |
renderReport(net.sf.jasperreports.engine.JasperReport report,
Map model,
net.sf.jasperreports.engine.JRDataSource dataSource,
HttpServletResponse response)
Locates the format key in the model using the configured discriminator key and uses this
key to lookup the appropriate view class from the mappings. |
void |
setContentDispositionMappings(Properties mappings)
Sets the mappings of Content-Disposition header values to
mapping keys. |
void |
setFormatKey(String formatKey)
Set the key of the model parameter that holds the format discriminator.
|
void |
setFormatMappings(Properties mappingsWithClassNames)
Set the mappings of format discriminators to view class names.
|
Methods inherited from class org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView |
convertReportData, convertToExporterParameter, getExporterParameters, getReport, getReportCompiler, getReportData, getReportDataTypes, initApplicationContext, renderMergedOutputModel, setExporterParameters, setHeaders, setReportDataKey, setSubReportDataKeys, setSubReportUrls |
Methods inherited from class org.springframework.web.servlet.view.AbstractView |
addStaticAttribute, createRequestContext, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setRequestContextAttribute |
DEFAULT_FORMAT_KEY
public static final String DEFAULT_FORMAT_KEY
- Default value used for format key
- See Also:
- Constant Field Values
JasperReportsMultiFormatView
public JasperReportsMultiFormatView()
- Creates a new
JasperReportsMultiFormatView
instance
with a default set of mappings.
setFormatKey
public void setFormatKey(String formatKey)
- Set the key of the model parameter that holds the format discriminator.
Default is "format".
setFormatMappings
public void setFormatMappings(Properties mappingsWithClassNames)
- Set the mappings of format discriminators to view class names.
The default mappings are:
csv
- JasperReportsCsvView
html
- JasperReportsHtmlView
pdf
- JasperReportsPdfView
xls
- JasperReportsXlsView
setContentDispositionMappings
public void setContentDispositionMappings(Properties mappings)
- Sets the mappings of
Content-Disposition
header values to
mapping keys. If specified Spring will look at these mappings to determine
the value of the Content-Disposition
header for a given
format mapping.
renderReport
protected void renderReport(net.sf.jasperreports.engine.JasperReport report,
Map model,
net.sf.jasperreports.engine.JRDataSource dataSource,
HttpServletResponse response)
throws Exception
- Locates the format key in the model using the configured discriminator key and uses this
key to lookup the appropriate view class from the mappings. The rendering of the
report is then delegated to an instance of that view class.
- Specified by:
renderReport
in class AbstractJasperReportsView
- Parameters:
report
- the JasperReport
to rendermodel
- the map containing report parametersdataSource
- the JRDataSource
containing the report dataresponse
- the HTTP response the report should be rendered to
- Throws:
Exception
- if rendering failed
Copyright (C) 2003-2004 The Spring Framework Project.