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
FieldsFields inherited from class org.springframework.context.support.ApplicationObjectSupport
loggerFields inherited from interface org.springframework.web.servlet.View
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for use as a bean.ScriptTemplateView(String url) Create a new ScriptTemplateView with the given URL. -
Method Summary
Modifier and TypeMethodDescriptionprotected ScriptTemplateConfigbooleancheckResource(Locale locale) Check whether the underlying resource that the configured URL points to actually exists.protected ScriptEnginecreateEngineFromName(String engineName) protected ScriptEngineprotected ResourcegetResource(String location) protected StringgetTemplate(String path) protected voidinitApplicationContext(ApplicationContext context) CallsWebApplicationObjectSupport.initServletContext(jakarta.servlet.ServletContext)if the given ApplicationContext is aWebApplicationContext.protected voidloadScripts(ScriptEngine engine) protected voidprepareResponse(HttpServletRequest request, HttpServletResponse response) Prepare the given response for rendering.protected voidrenderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) Subclasses must implement this method to actually render the view.voidsetCharset(Charset charset) SeeScriptTemplateConfigurer.setCharset(Charset)documentation.voidsetEngine(ScriptEngine engine) SeeScriptTemplateConfigurer.setEngine(ScriptEngine)documentation.voidsetEngineName(String engineName) SeeScriptTemplateConfigurer.setEngineName(String)documentation.voidsetEngineSupplier(Supplier<ScriptEngine> engineSupplier) SeeScriptTemplateConfigurer.setEngineSupplier(Supplier)documentation.voidsetRenderFunction(String functionName) SeeScriptTemplateConfigurer.setRenderFunction(String)documentation.voidsetRenderObject(String renderObject) SeeScriptTemplateConfigurer.setRenderObject(String)documentation.voidsetResourceLoaderPath(String resourceLoaderPath) SeeScriptTemplateConfigurer.setResourceLoaderPath(String)documentation.voidsetScripts(String... scripts) SeeScriptTemplateConfigurer.setScripts(String...)documentation.voidsetSharedEngine(Boolean sharedEngine) SeeScriptTemplateConfigurer.setSharedEngine(Boolean)documentation.Methods inherited from class org.springframework.web.servlet.view.AbstractUrlBasedView
afterPropertiesSet, getUrl, isUrlRequired, setUrl, toStringMethods 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, writeToResponseMethods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, initServletContext, isContextRequired, setServletContextMethods 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:WebApplicationObjectSupportCallsWebApplicationObjectSupport.initServletContext(jakarta.servlet.ServletContext)if the given ApplicationContext is aWebApplicationContext.- Overrides:
initApplicationContextin classWebApplicationObjectSupport- Parameters:
context- the containing ApplicationContext- See Also:
-
getEngine
-
createEngineFromName
-
loadScripts
-
getResource
-
autodetectViewConfig
- Throws:
BeansException
-
checkResource
Description copied from class:AbstractUrlBasedViewCheck whether the underlying resource that the configured URL points to actually exists.- Overrides:
checkResourcein classAbstractUrlBasedView- Parameters:
locale- the desired Locale that we're looking for- Returns:
trueif the resource exists (or is assumed to exist);falseif 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:AbstractViewPrepare the given response for rendering.The default implementation applies a workaround for an IE bug when sending download content via HTTPS.
- Overrides:
prepareResponsein 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:AbstractViewSubclasses 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:
renderMergedOutputModelin 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
-