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
AnAbstractUrlBasedViewsubclass 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
ScriptTemplateConfigbean 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
sharedEngineproperty tofalsein 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 StringDEFAULT_CONTENT_TYPEFields 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:
setContentTypein 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:WebApplicationObjectSupportCallsWebApplicationObjectSupport.initServletContext(javax.servlet.ServletContext)if the given ApplicationContext is aWebApplicationContext.- Overrides:
initApplicationContextin 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: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
protected void prepareResponse(HttpServletRequest request, HttpServletResponse response)
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 Exception
Description 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
protected String getTemplate(String path) throws IOException
- Throws:
IOException