org.apache.velocity.tools.view
Class VelocityLayoutServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by org.apache.velocity.tools.view.VelocityViewServlet
              extended by org.apache.velocity.tools.view.VelocityLayoutServlet
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
Direct Known Subclasses:
VelocityLayoutServlet

public class VelocityLayoutServlet
extends VelocityViewServlet

Extension of the VelocityViewServlet to perform "two-pass" layout rendering and allow for a customized error screen.

Version:
$Id: VelocityLayoutServlet.java 823236 2009-10-08 17:24:48Z nbubna $
Author:
Nathan Bubna
See Also:
Serialized Form

Field Summary
static java.lang.String DEFAULT_DEFAULT_LAYOUT
          The default filename for the servlet's default layout
static java.lang.String DEFAULT_ERROR_TEMPLATE
          The default error template's filename.
static java.lang.String DEFAULT_LAYOUT_DIR
          The default layout directory
protected  java.lang.String defaultLayout
           
protected  java.lang.String errorTemplate
           
static java.lang.String KEY_ERROR_CAUSE
          The context key that holds the Throwable that broke the rendering of the requested screen.
static java.lang.String KEY_ERROR_INVOCATION_EXCEPTION
          The context key that holds the MethodInvocationException that broke the rendering of the requested screen.
static java.lang.String KEY_ERROR_STACKTRACE
          The context key that holds the stack trace of the error that broke the rendering of the requested screen.
static java.lang.String KEY_LAYOUT
          The context/parameter key used to specify an alternate layout to be used for a request instead of the default layout.
static java.lang.String KEY_SCREEN_CONTENT
          The context key that will hold the content of the screen.
protected  java.lang.String layoutDir
           
static java.lang.String PROPERTY_DEFAULT_LAYOUT
          The velocity.properties key for specifying the servlet's default layout template's filename.
static java.lang.String PROPERTY_ERROR_TEMPLATE
          The velocity.properties key for specifying the servlet's error template.
static java.lang.String PROPERTY_LAYOUT_DIR
          The velocity.properties key for specifying the relative directory holding layout templates.
private static long serialVersionUID
          serial version id
 
Fields inherited from class org.apache.velocity.tools.view.VelocityViewServlet
BUFFER_OUTPUT_PARAM
 
Constructor Summary
VelocityLayoutServlet()
           
 
Method Summary
protected  void error(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.Throwable e)
          Overrides VelocityViewServlet to display user's custom error template
protected  void fillContext(org.apache.velocity.context.Context ctx, javax.servlet.http.HttpServletRequest request)
          Overrides VelocityViewServlet to check the request for an alternate layout
protected  java.lang.String findLayout(javax.servlet.http.HttpServletRequest request)
          Searches for a non-default layout to be used for this request.
 void init(javax.servlet.ServletConfig config)
          Initializes Velocity, the view servlet and checks for changes to the initial layout configuration.
protected  void mergeTemplate(org.apache.velocity.Template template, org.apache.velocity.context.Context context, javax.servlet.http.HttpServletResponse response)
          Overrides VelocityViewServlet.mergeTemplate to do a two-pass render for handling layouts
 
Methods inherited from class org.apache.velocity.tools.view.VelocityViewServlet
createContext, doGet, doPost, doRequest, findInitParameter, getLog, getTemplate, getTemplate, getVelocityProperty, getVelocityView, handleRequest, manageResourceNotFound, requestCleanup, setContentType, setVelocityView
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
serial version id

See Also:
Constant Field Values

PROPERTY_ERROR_TEMPLATE

public static final java.lang.String PROPERTY_ERROR_TEMPLATE
The velocity.properties key for specifying the servlet's error template.

See Also:
Constant Field Values

PROPERTY_LAYOUT_DIR

public static final java.lang.String PROPERTY_LAYOUT_DIR
The velocity.properties key for specifying the relative directory holding layout templates.

See Also:
Constant Field Values

PROPERTY_DEFAULT_LAYOUT

public static final java.lang.String PROPERTY_DEFAULT_LAYOUT
The velocity.properties key for specifying the servlet's default layout template's filename.

See Also:
Constant Field Values

DEFAULT_ERROR_TEMPLATE

public static final java.lang.String DEFAULT_ERROR_TEMPLATE
The default error template's filename.

See Also:
Constant Field Values

DEFAULT_LAYOUT_DIR

public static final java.lang.String DEFAULT_LAYOUT_DIR
The default layout directory

See Also:
Constant Field Values

DEFAULT_DEFAULT_LAYOUT

public static final java.lang.String DEFAULT_DEFAULT_LAYOUT
The default filename for the servlet's default layout

See Also:
Constant Field Values

KEY_SCREEN_CONTENT

public static final java.lang.String KEY_SCREEN_CONTENT
The context key that will hold the content of the screen. This key ($screen_content) must be present in the layout template for the current screen to be rendered.

See Also:
Constant Field Values

KEY_LAYOUT

public static final java.lang.String KEY_LAYOUT
The context/parameter key used to specify an alternate layout to be used for a request instead of the default layout.

See Also:
Constant Field Values

KEY_ERROR_CAUSE

public static final java.lang.String KEY_ERROR_CAUSE
The context key that holds the Throwable that broke the rendering of the requested screen.

See Also:
Constant Field Values

KEY_ERROR_STACKTRACE

public static final java.lang.String KEY_ERROR_STACKTRACE
The context key that holds the stack trace of the error that broke the rendering of the requested screen.

See Also:
Constant Field Values

KEY_ERROR_INVOCATION_EXCEPTION

public static final java.lang.String KEY_ERROR_INVOCATION_EXCEPTION
The context key that holds the MethodInvocationException that broke the rendering of the requested screen. If this value is placed in the context, then $error_cause will hold the error that this invocation exception is wrapping.

See Also:
Constant Field Values

errorTemplate

protected java.lang.String errorTemplate

layoutDir

protected java.lang.String layoutDir

defaultLayout

protected java.lang.String defaultLayout
Constructor Detail

VelocityLayoutServlet

public VelocityLayoutServlet()
Method Detail

init

public void init(javax.servlet.ServletConfig config)
          throws javax.servlet.ServletException
Initializes Velocity, the view servlet and checks for changes to the initial layout configuration.

Specified by:
init in interface javax.servlet.Servlet
Overrides:
init in class VelocityViewServlet
Parameters:
config - servlet configuration parameters
Throws:
javax.servlet.ServletException

fillContext

protected void fillContext(org.apache.velocity.context.Context ctx,
                           javax.servlet.http.HttpServletRequest request)
Overrides VelocityViewServlet to check the request for an alternate layout

Overrides:
fillContext in class VelocityViewServlet
Parameters:
ctx - context for this request
request - client request

findLayout

protected java.lang.String findLayout(javax.servlet.http.HttpServletRequest request)
Searches for a non-default layout to be used for this request. This implementation checks the request parameters and attributes.


mergeTemplate

protected void mergeTemplate(org.apache.velocity.Template template,
                             org.apache.velocity.context.Context context,
                             javax.servlet.http.HttpServletResponse response)
                      throws java.io.IOException
Overrides VelocityViewServlet.mergeTemplate to do a two-pass render for handling layouts

Overrides:
mergeTemplate in class VelocityViewServlet
Throws:
java.io.IOException

error

protected void error(javax.servlet.http.HttpServletRequest request,
                     javax.servlet.http.HttpServletResponse response,
                     java.lang.Throwable e)
Overrides VelocityViewServlet to display user's custom error template

Overrides:
error in class VelocityViewServlet
Parameters:
request - original HttpServletRequest from servlet container.
response - HttpServletResponse object from servlet container.
e - Exception that was thrown by some other part of process.


Copyright (c) 2003-2007 Apache Software Foundation