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
An
AbstractUrlBasedView
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 to false
in order to run properly. See
ScriptTemplateConfigurer.setSharedEngine(Boolean)
for more details.
- Since:
- 4.2
- Author:
- Sebastien Deleuze, Juergen Hoeller
- See Also:
-
Field Summary
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
ConstructorDescriptionConstructor for use as a bean.ScriptTemplateView
(String url) Create a new ScriptTemplateView with the given URL. -
Method Summary
Modifier and TypeMethodDescriptionprotected ScriptTemplateConfig
boolean
checkResource
(Locale locale) Check whether the underlying resource that the configured URL points to actually exists.protected ScriptEngine
createEngineFromName
(String engineName) protected ScriptEngine
protected Resource
getResource
(String location) protected String
getTemplate
(String path) protected void
initApplicationContext
(ApplicationContext context) CallsWebApplicationObjectSupport.initServletContext(jakarta.servlet.ServletContext)
if the given ApplicationContext is aWebApplicationContext
.protected void
loadScripts
(ScriptEngine engine) protected void
prepareResponse
(HttpServletRequest request, HttpServletResponse response) Prepare the given response for rendering.protected void
renderMergedOutputModel
(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) Subclasses must implement this method to actually render the view.void
setCharset
(Charset charset) SeeScriptTemplateConfigurer.setCharset(Charset)
documentation.void
setEngine
(ScriptEngine engine) SeeScriptTemplateConfigurer.setEngine(ScriptEngine)
documentation.void
setEngineName
(String engineName) SeeScriptTemplateConfigurer.setEngineName(String)
documentation.void
setEngineSupplier
(Supplier<ScriptEngine> engineSupplier) SeeScriptTemplateConfigurer.setEngineSupplier(Supplier)
documentation.void
setRenderFunction
(String functionName) SeeScriptTemplateConfigurer.setRenderFunction(String)
documentation.void
setRenderObject
(String renderObject) SeeScriptTemplateConfigurer.setRenderObject(String)
documentation.void
setResourceLoaderPath
(String resourceLoaderPath) SeeScriptTemplateConfigurer.setResourceLoaderPath(String)
documentation.void
setScripts
(String... scripts) SeeScriptTemplateConfigurer.setScripts(String...)
documentation.void
setSharedEngine
(Boolean sharedEngine) SeeScriptTemplateConfigurer.setSharedEngine(Boolean)
documentation.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, formatViewName, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, 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, obtainApplicationContext, requiredContextClass, setApplicationContext
-
Field Details
-
DEFAULT_CONTENT_TYPE
The default content type for the view.- See Also:
-
-
Constructor Details
-
ScriptTemplateView
public ScriptTemplateView()Constructor for use as a bean. -
ScriptTemplateView
Create a new ScriptTemplateView with the given URL.- Since:
- 4.2.1
-
-
Method Details
-
setEngine
SeeScriptTemplateConfigurer.setEngine(ScriptEngine)
documentation. -
setEngineSupplier
SeeScriptTemplateConfigurer.setEngineSupplier(Supplier)
documentation.- Since:
- 5.2
-
setEngineName
SeeScriptTemplateConfigurer.setEngineName(String)
documentation. -
setScripts
SeeScriptTemplateConfigurer.setScripts(String...)
documentation. -
setRenderObject
SeeScriptTemplateConfigurer.setRenderObject(String)
documentation. -
setRenderFunction
SeeScriptTemplateConfigurer.setRenderFunction(String)
documentation. -
setCharset
SeeScriptTemplateConfigurer.setCharset(Charset)
documentation. -
setResourceLoaderPath
SeeScriptTemplateConfigurer.setResourceLoaderPath(String)
documentation. -
initApplicationContext
Description copied from class:WebApplicationObjectSupport
CallsWebApplicationObjectSupport.initServletContext(jakarta.servlet.ServletContext)
if the given ApplicationContext is aWebApplicationContext
.- Overrides:
initApplicationContext
in classWebApplicationObjectSupport
- Parameters:
context
- the containing ApplicationContext- See Also:
-
getEngine
-
createEngineFromName
-
loadScripts
-
getResource
-
autodetectViewConfig
- Throws:
BeansException
-
checkResource
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
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 ExceptionDescription 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
- Throws:
IOException
-