org.springframework.web.servlet.view.jasperreports
Class JasperReportsMultiFormatView

java.lang.Object
  extended byorg.springframework.context.support.ApplicationObjectSupport
      extended byorg.springframework.web.context.support.WebApplicationObjectSupport
          extended byorg.springframework.web.servlet.view.AbstractView
              extended byorg.springframework.web.servlet.view.AbstractUrlBasedView
                  extended byorg.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView
                      extended byorg.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:

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)

Field Summary
static String DEFAULT_FORMAT_KEY
          Default value used for format key
 
Fields inherited from class org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView
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
 
Constructor Summary
JasperReportsMultiFormatView()
          Creates a new JasperReportsMultiFormatView instance with a default set of mappings.
 
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.AbstractUrlBasedView
getUrl, setUrl, toString
 
Methods inherited from class org.springframework.web.servlet.view.AbstractView
addStaticAttribute, createRequestContext, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setRequestContextAttribute
 
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, isContextRequired
 
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
 

Field Detail

DEFAULT_FORMAT_KEY

public static final String DEFAULT_FORMAT_KEY
Default value used for format key

See Also:
Constant Field Values
Constructor Detail

JasperReportsMultiFormatView

public JasperReportsMultiFormatView()
Creates a new JasperReportsMultiFormatView instance with a default set of mappings.

Method Detail

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:


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 render
model - the map containing report parameters
dataSource - the JRDataSource containing the report data
response - the HTTP response the report should be rendered to
Throws:
Exception - if rendering failed


Copyright (C) 2003-2004 The Spring Framework Project.