public class VelocityView extends ViewToolManager
The class provides the following features:
VelocityView supports the following configuration parameters in web.xml:
Modifier and Type | Field and Description |
---|---|
static String |
CLEAN_CONFIGURATION_KEY
Controls removal of tools or data with invalid configurations
before initialization is finished.
|
static String |
CONTENT_TYPE_KEY
The HTTP content type context key.
|
static String |
DEFAULT_CONTENT_TYPE
The default content type for the response
|
static String |
DEFAULT_OUTPUT_ENCODING
Default encoding for the output stream
|
static String |
DEFAULT_PROPERTIES_PATH
Default Runtime properties.
|
static String |
DEPRECATED_TOOLS_KEY
Deprecated.
|
static String |
DEPRECATED_USER_TOOLS_PATH
Deprecated.
|
static String |
DEPRECATION_SUPPORT_MODE_KEY
Controls support for deprecated tools and configuration.
|
static String |
LOAD_DEFAULTS_KEY
Controls loading of available default tool configurations
provided by VelocityTools.
|
static String |
PROPERTIES_KEY
This is the string that is looked for when getInitParameter is
called ("org.apache.velocity.properties").
|
static String |
SERVLET_CONTEXT_KEY
Key used to access the ServletContext in
the Velocity application attributes.
|
static String |
TOOLS_KEY
Key used to access the toolbox configuration file path from the
Servlet or webapp init parameters ("org.apache.velocity.tools")
or to access a live
FactoryConfiguration previously
placed in the ServletContext attributes. |
static String |
USER_OVERWRITE_KEY
Controls whether or not templates can overwrite tool and servlet API
variables in the local context.
|
static String |
USER_PROPERTIES_PATH
Default velocity properties file path.
|
static String |
USER_TOOLS_PATH
Default toolbox configuration file path.
|
CREATE_SESSION_PROPERTY, DEFAULT_TOOLBOX_KEY, PUBLISH_TOOLBOXES_PROPERTY, servletContext
factory, velocity
Constructor and Description |
---|
VelocityView(javax.servlet.FilterConfig config) |
VelocityView(JeeConfig config) |
VelocityView(javax.servlet.ServletConfig config) |
VelocityView(javax.servlet.ServletContext context) |
Modifier and Type | Method and Description |
---|---|
protected void |
configure(JeeConfig config,
ToolboxFactory factory)
Here's the configuration lookup/loading order:
If deprecationSupportMode is true:
Config file optionally specified by
org.apache.velocity.toolbox init-param (servlet or servletContext)
If none, config file optionally at /WEB-INF/toolbox.xml (deprecated conventional location)
If no old toolbox or loadDefaults is true, ConfigurationUtils.getDefaultTools()
ConfigurationUtils.getAutoLoaded() (false)
Config file optionally specified by servletContext org.apache.velocity.tools init-param
Config file optionally at /WEB-INF/tools.xml (new conventional location)
Config file optionally specified by servlet org.apache.velocity.tools init-param
Remember that as these configurations are added on top of each other,
the newer values will always override the older ones. |
protected void |
configure(JeeConfig config,
org.apache.velocity.app.VelocityEngine velocity) |
ViewToolContext |
createContext(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Creates and returns an initialized Velocity context.
|
protected FactoryConfiguration |
getConfiguration(String path) |
protected FactoryConfiguration |
getConfiguration(String path,
boolean required) |
String |
getDefaultContentType()
Returns the configured default Content-Type.
|
protected FactoryConfiguration |
getDeprecatedConfig(JeeConfig config)
Deprecated.
|
protected InputStream |
getInputStream(String path,
boolean required) |
protected org.apache.commons.collections.ExtendedProperties |
getProperties(String path) |
protected org.apache.commons.collections.ExtendedProperties |
getProperties(String path,
boolean required) |
protected String |
getProperty(String key,
String alternate)
Simplifies process of getting a property from VelocityEngine,
because the VelocityEngine interface sucks compared to the singleton's.
|
org.apache.velocity.Template |
getTemplate(javax.servlet.http.HttpServletRequest request)
Gets the requested template.
|
org.apache.velocity.Template |
getTemplate(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
org.apache.velocity.Template |
getTemplate(String name)
Retrieves the requested template.
|
org.apache.velocity.Template |
getTemplate(String name,
String encoding)
Retrieves the requested template with the specified character encoding.
|
protected void |
init(JeeConfig config)
Initializes ToolboxFactory, VelocityEngine, and sets default
encoding for processing requests.
|
protected void |
init(JeeConfig config,
org.apache.velocity.app.VelocityEngine velocity)
Initializes the Velocity runtime, first calling
loadConfiguration(JeeConfig) to get a
org.apache.commons.collections.ExtendedProperties
of configuration information
and then calling velocityEngine.init().
|
void |
merge(org.apache.velocity.Template template,
org.apache.velocity.context.Context context,
Writer writer)
Merges the template with the context.
|
protected void |
performMerge(org.apache.velocity.Template template,
org.apache.velocity.context.Context context,
Writer writer)
This is here so developers may override it and gain access to the
Writer which the template will be merged into.
|
org.apache.velocity.context.Context |
render(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
org.apache.velocity.context.Context |
render(javax.servlet.http.HttpServletRequest request,
Writer out) |
void |
setDefaultContentType(String type)
Sets the configured default Content-Type.
|
protected void |
setDeprecationSupportMode(boolean support)
Deprecated.
|
protected void |
setEncoding(JeeConfig config) |
void |
setVelocityEngine(org.apache.velocity.app.VelocityEngine engine)
Overrides super class to ensure engine is not set to null.
|
addToolboxes, autoConfigure, configure, createContext, findConfig, getCreateSession, getPublishToolboxes, getSessionToolbox, getToolboxKey, hasSessionTools, prepareContext, publishToolboxes, publishToolboxes, setCreateSession, setPublishToolboxes, setToolboxKey, unpublishApplicationTools, updateGlobalProperties
configure, createContext, createToolbox, debug, getApplicationToolbox, getLog, getRequestToolbox, getToolboxFactory, getUserCanOverwriteTools, getVelocityEngine, hasApplicationTools, hasRequestTools, hasTools, prepareContext, setToolboxFactory, setUserCanOverwriteTools
public static final String CONTENT_TYPE_KEY
public static final String SERVLET_CONTEXT_KEY
public static final String DEFAULT_CONTENT_TYPE
public static final String DEFAULT_OUTPUT_ENCODING
public static final String TOOLS_KEY
FactoryConfiguration
previously
placed in the ServletContext attributes.@Deprecated public static final String DEPRECATED_TOOLS_KEY
public static final String USER_TOOLS_PATH
@Deprecated public static final String DEPRECATED_USER_TOOLS_PATH
public static final String DEFAULT_PROPERTIES_PATH
public static final String PROPERTIES_KEY
public static final String USER_PROPERTIES_PATH
public static final String LOAD_DEFAULTS_KEY
DEPRECATION_SUPPORT_MODE_KEY
has not been set to
false
and there is an old toolbox.xml
configuration
present, then the defaults will not be loaded unless you explicitly
set this property to true
in your init params. If there
is no toolbox.xml
and/or the deprecation support is turned off,
then the default tools will be loaded automatically unless you
explicitly set this property to false
in your init params.public static final String CLEAN_CONFIGURATION_KEY
true
to turn this feature on.public static final String USER_OVERWRITE_KEY
false
to prevent overwriting of any tool variables.public static final String DEPRECATION_SUPPORT_MODE_KEY
true
; set to false
to turn off
support for deprecated tools and configuration.public VelocityView(javax.servlet.ServletConfig config)
public VelocityView(javax.servlet.FilterConfig config)
public VelocityView(javax.servlet.ServletContext context)
public VelocityView(JeeConfig config)
@Deprecated protected final void setDeprecationSupportMode(boolean support)
public void setVelocityEngine(org.apache.velocity.app.VelocityEngine engine)
setVelocityEngine
in class ToolManager
public String getDefaultContentType()
public void setDefaultContentType(String type)
protected String getProperty(String key, String alternate)
init(JeeConfig,VelocityEngine)
has already been called.protected void init(JeeConfig config)
Initializes ToolboxFactory, VelocityEngine, and sets default encoding for processing requests.
NOTE: If no charset is specified in the default.contentType property (in your velocity.properties) and you have specified an output.encoding property, then that will be used as the charset for the default content-type of pages served by this servlet.
config
- servlet configuationprotected void init(JeeConfig config, org.apache.velocity.app.VelocityEngine velocity)
config
- servlet configuration parametersprotected void configure(JeeConfig config, org.apache.velocity.app.VelocityEngine velocity)
protected void configure(JeeConfig config, ToolboxFactory factory)
org.apache.velocity.toolbox
init-param (servlet or servletContext)/WEB-INF/toolbox.xml
(deprecated conventional location)ConfigurationUtils.getDefaultTools()
ConfigurationUtils.getAutoLoaded()
(false)org.apache.velocity.tools
init-param/WEB-INF/tools.xml
(new conventional location)org.apache.velocity.tools
init-paramorg.apache.velocity.tools.cleanConfiguration
init-param to true in
either your servlet or servletContext init-params.@Deprecated protected FactoryConfiguration getDeprecatedConfig(JeeConfig config)
org.apache.velocity.toolbox
key.
If found, it tries to load the configuration there and will blow up
if there is no config file there.
If not found, it looks for a config file at /WEB-INF/toolbox.xml
(the deprecated default location) and tries to load it if found.protected InputStream getInputStream(String path, boolean required)
protected org.apache.commons.collections.ExtendedProperties getProperties(String path)
protected org.apache.commons.collections.ExtendedProperties getProperties(String path, boolean required)
protected FactoryConfiguration getConfiguration(String path)
protected FactoryConfiguration getConfiguration(String path, boolean required)
protected void setEncoding(JeeConfig config)
public org.apache.velocity.context.Context render(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws IOException
request
- HttpServletRequest object containing client requestresponse
- HttpServletResponse object for the responseContext
prepared and used to perform the rendering
to allow proper cleanup afterwardIOException
public org.apache.velocity.context.Context render(javax.servlet.http.HttpServletRequest request, Writer out) throws IOException
IOException
public ViewToolContext createContext(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
Creates and returns an initialized Velocity context.
A new context of classViewToolContext
is created and
initialized.createContext
in class ViewToolManager
request
- servlet request from clientresponse
- servlet reponse to clientpublic org.apache.velocity.Template getTemplate(javax.servlet.http.HttpServletRequest request)
Gets the requested template.
request
- client requestpublic org.apache.velocity.Template getTemplate(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
public org.apache.velocity.Template getTemplate(String name)
name
- The file name of the template to retrieve relative to the
template root.org.apache.velocity.exception.ResourceNotFoundException
- if template not found
from any available source.ParseErrorException
- if template cannot be parsed due
to syntax (or other) error.public org.apache.velocity.Template getTemplate(String name, String encoding)
name
- The file name of the template to retrieve relative to the
template root.encoding
- the character encoding of the templateorg.apache.velocity.exception.ResourceNotFoundException
- if template not found
from any available source.ParseErrorException
- if template cannot be parsed due
to syntax (or other) error.public void merge(org.apache.velocity.Template template, org.apache.velocity.context.Context context, Writer writer) throws IOException
template
- template being renderedcontext
- Context created by the createContext(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
writer
- into which the content is renderedIOException
protected void performMerge(org.apache.velocity.Template template, org.apache.velocity.context.Context context, Writer writer) throws IOException
template
- template object returned by the handleRequest() methodcontext
- Context created by the createContext(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
writer
- a VelocityWriter that the template is merged intoIOException
Copyright © 2002–2021 Apache Software Foundation. All rights reserved.