|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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.xslt.AbstractXsltView
Convenient superclass for views rendered using an XSLT stylesheet. Subclasses must provide the XML W3C document to transform. They do not need to concern themselves with XSLT.
Properties:
Setting cache to false will cause the templates object to be reloaded for each rendering. This is useful during development, but will seriously affect performance in production and isn't threadsafe.
Field Summary |
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport |
logger |
Constructor Summary | |
AbstractXsltView()
|
Method Summary | |
protected abstract org.w3c.dom.Node |
createDomNode(java.util.Map model,
java.lang.String root,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Return the XML node to transform. |
protected void |
doTransform(javax.servlet.http.HttpServletResponse response,
org.w3c.dom.Node dom)
Use TrAX to perform the transform. |
protected java.util.Map |
getParameters()
Return a Map of parameters to be applied to the stylesheet. |
protected javax.xml.transform.Source |
getStylesheetSource(Resource stylesheetLocation)
Load the stylesheet. |
protected void |
initApplicationContext()
Here we load our template, as we need the ApplicationContext to do it. |
protected void |
renderMergedOutputModel(java.util.Map model,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Subclasses must implement this method to render the view. |
void |
setCache(boolean cache)
Activate or deactivate the cache. |
void |
setRoot(java.lang.String root)
Document root element name. |
void |
setStylesheetLocation(Resource stylesheetLocation)
Set the location of the XSLT stylesheet. |
void |
setUriResolver(javax.xml.transform.URIResolver uriResolver)
Set the URIResolver used in the transform. |
Methods inherited from class org.springframework.web.servlet.view.AbstractView |
addStaticAttribute, getBeanName, getContentType, getStaticAttributes, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setRequestContextAttribute |
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport |
getServletContext, getTempDir, getWebApplicationContext, requiredContextClass |
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport |
getApplicationContext, getMessageSourceAccessor, setApplicationContext |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public AbstractXsltView()
Method Detail |
public final void setStylesheetLocation(Resource stylesheetLocation)
stylesheetLocation
- the location of the XSLT stylesheetResourceLoader.getResource(java.lang.String)
public final void setRoot(java.lang.String root)
root
- document root element namepublic final void setUriResolver(javax.xml.transform.URIResolver uriResolver)
uriResolver
- URIResolver to set. No URIResolver
will be set if this is null (this is the default).public final void setCache(boolean cache)
cache
- whether to activate the cacheprotected final void initApplicationContext() throws ApplicationContextException
initApplicationContext
in class ApplicationObjectSupport
ApplicationContextException
- in case of initialization errorsprotected javax.xml.transform.Source getStylesheetSource(Resource stylesheetLocation) throws ApplicationContextException
ApplicationContextException
protected final void renderMergedOutputModel(java.util.Map model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.lang.Exception
AbstractView
The first take will be preparing the request: This may include setting the model elements as request attributes, e.g. in the case of a JSP view.
renderMergedOutputModel
in class AbstractView
model
- combined output Map, with dynamic values taking precedence
over static attributesrequest
- current HTTP requestresponse
- current HTTP response
java.lang.Exception
- if rendering failedprotected abstract org.w3c.dom.Node createDomNode(java.util.Map model, java.lang.String root, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.lang.Exception
model
- the model Maproot
- name for root element. This can be supplied as a bean property
to concrete subclasses within the view definition file, but will be overridden
in the case of a single object in the model map to be the key for that object.
If no root property is specified and multiple model objects exist, a default
root tag name will be supplied.request
- HTTP request. Subclasses won't normally use this, as
request processing should have been complete. However, we might to
create a RequestContext to expose as part of the model.response
- HTTP response. Subclasses won't normally use this,
however there may sometimes be a need to set cookies.
java.lang.Exception
- we let this method throw any exception; the
AbstractXlstView superclass will catch exceptionsprotected java.util.Map getParameters()
Map
of parameters to be applied to the stylesheet. Subclasses
can override the default implementation (which simply returns null) in order to
apply one or more parameters to the transformation process.
Transformer.setParameter(java.lang.String, java.lang.Object)
protected void doTransform(javax.servlet.http.HttpServletResponse response, org.w3c.dom.Node dom) throws javax.servlet.ServletException, java.io.IOException
javax.servlet.ServletException
java.io.IOException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |