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:
Serializable, 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 961796 2010-07-08 15:18:15Z apetrelli $
Author:
Nathan Bubna
See Also:
Serialized Form

Field Summary
static String DEFAULT_DEFAULT_LAYOUT
          The default filename for the servlet's default layout
static String DEFAULT_ERROR_TEMPLATE
          The default error template's filename.
static String DEFAULT_LAYOUT_DIR
          The default layout directory
protected  String defaultLayout
           
protected  String errorTemplate
           
static String KEY_ERROR_CAUSE
          The context key that holds the Throwable that broke the rendering of the requested screen.
static String KEY_ERROR_INVOCATION_EXCEPTION
          The context key that holds the MethodInvocationException that broke the rendering of the requested screen.
static String KEY_ERROR_STACKTRACE
          The context key that holds the stack trace of the error that broke the rendering of the requested screen.
static 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 String KEY_SCREEN_CONTENT
          The context key that will hold the content of the screen.
protected  String layoutDir
           
static String PROPERTY_DEFAULT_LAYOUT
          The velocity.properties key for specifying the servlet's default layout template's filename.
static String PROPERTY_ERROR_TEMPLATE
          The velocity.properties key for specifying the servlet's error template.
static String PROPERTY_LAYOUT_DIR
          The velocity.properties key for specifying the relative directory holding layout templates.
 
Fields inherited from class org.apache.velocity.tools.view.VelocityViewServlet
BUFFER_OUTPUT_PARAM
 
Constructor Summary
VelocityLayoutServlet()
           
 
Method Summary
protected  void error(HttpServletRequest request, HttpServletResponse response, Throwable e)
          Overrides VelocityViewServlet to display user's custom error template
protected  void fillContext(org.apache.velocity.context.Context ctx, HttpServletRequest request)
          Overrides VelocityViewServlet to check the request for an alternate layout
protected  String findLayout(HttpServletRequest request)
          Searches for a non-default layout to be used for this request.
 void init(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, 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

PROPERTY_ERROR_TEMPLATE

public static final 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 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 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 String DEFAULT_ERROR_TEMPLATE
The default error template's filename.

See Also:
Constant Field Values

DEFAULT_LAYOUT_DIR

public static final String DEFAULT_LAYOUT_DIR
The default layout directory

See Also:
Constant Field Values

DEFAULT_DEFAULT_LAYOUT

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

See Also:
Constant Field Values

KEY_SCREEN_CONTENT

public static final 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 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 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 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 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 String errorTemplate

layoutDir

protected String layoutDir

defaultLayout

protected String defaultLayout
Constructor Detail

VelocityLayoutServlet

public VelocityLayoutServlet()
Method Detail

init

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

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

fillContext

protected void fillContext(org.apache.velocity.context.Context ctx,
                           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 String findLayout(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,
                             HttpServletResponse response)
                      throws IOException
Overrides VelocityViewServlet.mergeTemplate to do a two-pass render for handling layouts

Overrides:
mergeTemplate in class VelocityViewServlet
Throws:
IOException

error

protected void error(HttpServletRequest request,
                     HttpServletResponse response,
                     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 © 2002-2011 The Apache Software Foundation. All Rights Reserved.