Class VelocityLayoutServlet

  • All Implemented Interfaces:
    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$
    Author:
    Nathan Bubna
    See Also:
    Serialized Form
    • 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_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​(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 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 IOException
        Overrides VelocityViewServlet.mergeTemplate to do a two-pass render for handling layouts
        Overrides:
        mergeTemplate in class VelocityViewServlet
        Throws:
        IOException
      • error

        protected void error​(javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.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.