Class AbstractXlsView
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.document.AbstractXlsView
- All Implemented Interfaces:
Aware
,BeanNameAware
,ApplicationContextAware
,ServletContextAware
,View
- Direct Known Subclasses:
AbstractXlsxView
Convenient superclass for Excel document views in traditional XLS format.
Compatible with Apache POI 3.5 and higher.
For working with the workbook in the subclass, see Apache's POI site
- Since:
- 4.2
- Author:
- Juergen Hoeller
-
Field Summary
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, SELECTED_CONTENT_TYPE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
buildExcelDocument
(Map<String, Object> model, org.apache.poi.ss.usermodel.Workbook workbook, HttpServletRequest request, HttpServletResponse response) Application-provided subclasses must implement this method to populate the Excel workbook document, given the model.protected org.apache.poi.ss.usermodel.Workbook
createWorkbook
(Map<String, Object> model, HttpServletRequest request) Template method for creating the POIWorkbook
instance.protected boolean
Return whether this view generates download content (typically binary content like PDF or Excel files).protected final void
renderMergedOutputModel
(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) Renders the Excel view, given the specified model.protected void
renderWorkbook
(org.apache.poi.ss.usermodel.Workbook workbook, HttpServletResponse response) The actual render step: taking the POIWorkbook
and rendering it to the given response.Methods inherited from class org.springframework.web.servlet.view.AbstractView
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, formatViewName, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, toString, 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, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
-
Constructor Details
-
AbstractXlsView
public AbstractXlsView()Default Constructor. Sets the content type of the view to "application/vnd.ms-excel".
-
-
Method Details
-
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 returntrue
here if they know that they are generating download content that requires temporary caching on the client side, typically via the response OutputStream. -
renderMergedOutputModel
protected final void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws ExceptionRenders the Excel view, given the specified model.- Specified by:
renderMergedOutputModel
in classAbstractView
- Parameters:
model
- combined output Map (nevernull
), with dynamic values taking precedence over static attributesrequest
- current HTTP requestresponse
- current HTTP response- Throws:
Exception
- if rendering failed
-
createWorkbook
protected org.apache.poi.ss.usermodel.Workbook createWorkbook(Map<String, Object> model, HttpServletRequest request) Template method for creating the POIWorkbook
instance.The default implementation creates a traditional
HSSFWorkbook
. Spring-provided subclasses are overriding this for the OOXML-based variants; custom subclasses may override this for reading a workbook from a file.- Parameters:
model
- the model Maprequest
- current HTTP request (for taking the URL or headers into account)- Returns:
- the new
Workbook
instance
-
renderWorkbook
protected void renderWorkbook(org.apache.poi.ss.usermodel.Workbook workbook, HttpServletResponse response) throws IOException The actual render step: taking the POIWorkbook
and rendering it to the given response.- Parameters:
workbook
- the POI Workbook to renderresponse
- current HTTP response- Throws:
IOException
- when thrown by I/O methods that we're delegating to
-
buildExcelDocument
protected abstract void buildExcelDocument(Map<String, Object> model, org.apache.poi.ss.usermodel.Workbook workbook, HttpServletRequest request, HttpServletResponse response) throws ExceptionApplication-provided subclasses must implement this method to populate the Excel workbook document, given the model.- Parameters:
model
- the model Mapworkbook
- the Excel workbook to populaterequest
- in case we need locale etc. Shouldn't look at attributes.response
- in case we need to set cookies. Shouldn't write to it.- Throws:
Exception
-