Class ScriptTemplateView
- 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.script.ScriptTemplateView
- All Implemented Interfaces:
Aware
,BeanNameAware
,InitializingBean
,ApplicationContextAware
,ServletContextAware
,View
public class ScriptTemplateView extends AbstractUrlBasedView
AnAbstractUrlBasedView
subclass designed to run any template library based on a JSR-223 script engine.If not set, each property is auto-detected by looking up a single
ScriptTemplateConfig
bean in the web application context and using it to obtain the configured properties.The Nashorn JavaScript engine requires Java 8+ and may require setting the
sharedEngine
property tofalse
in order to run properly. SeeScriptTemplateConfigurer.setSharedEngine(Boolean)
for more details.- Since:
- 4.2
- Author:
- Sebastien Deleuze, Juergen Hoeller
- See Also:
ScriptTemplateConfigurer
,ScriptTemplateViewResolver
Field Summary
Fields Modifier and Type Field Description static String
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
Constructors Constructor Description ScriptTemplateView()
Constructor for use as a bean.ScriptTemplateView(String url)
Create a new ScriptTemplateView with the given URL.
Method Summary
Methods inherited from class org.springframework.web.servlet.view.AbstractUrlBasedView
afterPropertiesSet, getUrl, isUrlRequired, setUrl, toString
Methods inherited from class org.springframework.web.servlet.view.AbstractView
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, writeToResponse
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initServletContext, isContextRequired, setServletContext
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, initApplicationContext, requiredContextClass, setApplicationContext
Field Detail
DEFAULT_CONTENT_TYPE
public static final String DEFAULT_CONTENT_TYPE
- See Also:
- Constant Field Values
Constructor Detail
ScriptTemplateView
public ScriptTemplateView()
Constructor for use as a bean.
ScriptTemplateView
public ScriptTemplateView(String url)
Create a new ScriptTemplateView with the given URL.- Since:
- 4.2.1
Method Detail
setEngine
public void setEngine(ScriptEngine engine)
SeeScriptTemplateConfigurer.setEngine(ScriptEngine)
documentation.
setEngineName
public void setEngineName(String engineName)
SeeScriptTemplateConfigurer.setEngineName(String)
documentation.
setSharedEngine
public void setSharedEngine(Boolean sharedEngine)
SeeScriptTemplateConfigurer.setSharedEngine(Boolean)
documentation.
setScripts
public void setScripts(String... scripts)
SeeScriptTemplateConfigurer.setScripts(String...)
documentation.
setRenderObject
public void setRenderObject(String renderObject)
SeeScriptTemplateConfigurer.setRenderObject(String)
documentation.
setRenderFunction
public void setRenderFunction(String functionName)
SeeScriptTemplateConfigurer.setRenderFunction(String)
documentation.
setContentType
public void setContentType(String contentType)
SeeScriptTemplateConfigurer.setContentType(String)
} documentation.- Overrides:
setContentType
in classAbstractView
- Since:
- 4.2.1
setCharset
public void setCharset(Charset charset)
SeeScriptTemplateConfigurer.setCharset(Charset)
documentation.
setResourceLoaderPath
public void setResourceLoaderPath(String resourceLoaderPath)
SeeScriptTemplateConfigurer.setResourceLoaderPath(String)
documentation.
initApplicationContext
protected void initApplicationContext(ApplicationContext context)
Description copied from class:WebApplicationObjectSupport
CallsWebApplicationObjectSupport.initServletContext(javax.servlet.ServletContext)
if the given ApplicationContext is aWebApplicationContext
.- Overrides:
initApplicationContext
in classWebApplicationObjectSupport
- Parameters:
context
- the containing ApplicationContext- See Also:
ApplicationObjectSupport.setApplicationContext(org.springframework.context.ApplicationContext)
getEngine
protected ScriptEngine getEngine()
createEngineFromName
protected ScriptEngine createEngineFromName()
loadScripts
protected void loadScripts(ScriptEngine engine)
getResource
protected Resource getResource(String location)
autodetectViewConfig
protected ScriptTemplateConfig autodetectViewConfig() throws BeansException
- Throws:
BeansException
checkResource
public boolean checkResource(Locale locale) throws Exception
Description copied from class:AbstractUrlBasedView
Check whether the underlying resource that the configured URL points to actually exists.- Overrides:
checkResource
in classAbstractUrlBasedView
- Parameters:
locale
- the desired Locale that we're looking for- Returns:
true
if the resource exists (or is assumed to exist);false
if we know that it does not exist- Throws:
Exception
- if the resource exists but is invalid (e.g. could not be parsed)
prepareResponse
protected void prepareResponse(HttpServletRequest request, HttpServletResponse response)
Description copied from class:AbstractView
Prepare the given response for rendering.The default implementation applies a workaround for an IE bug when sending download content via HTTPS.
- Overrides:
prepareResponse
in classAbstractView
- Parameters:
request
- current HTTP requestresponse
- current HTTP response
renderMergedOutputModel
protected void renderMergedOutputModel(Map<String,Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception
Description copied from class:AbstractView
Subclasses must implement this method to actually render the view.The first step will be preparing the request: In the JSP case, this would mean setting model objects as request attributes. The second step will be the actual rendering of the view, for example including the JSP via a RequestDispatcher.
- 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
getTemplate
protected String getTemplate(String path) throws IOException
- Throws:
IOException