sunlabs.brazil.template

Class TemplateHandler

public class TemplateHandler extends Object implements Handler

The TemplateHandler reads a template file from the document root, based on the URL, and passes the content through one or more template filters.

The following configuration parameters are used to initialize this Handler:

prefix, suffix, glob, match
Specify the URL that triggers this handler. By default, all URL's are considered. Only documents that are mime sub-types of text are processed. See FileHandler for a description of how to set mime types for url suffixes. (See MatchString).
templates
A list of template names. For each name in the list, the property name.class is examined to determine which class to use for each template. Then name is used as the prefix for other template specific properties if any. If name.class does not exist, then name is assumed to be the class name, and there are no template specific properties for the template. Methods in the template classes will be invoked to process the XML/HTML tags present in the content.
session
The name of the request property that the Session ID will be found in, used to identify the proper template instance. The default value is "SessionID". Typically, a sessionHandler, such as CookieSessionHandler is used upstream to create the sessionID. If no id is found, then the session named "common" is used instead. Exactly one instance of each template class is created for each session.
default
The default file in the directory to use as a template if a directory name is specified. Defaults to index[suffix], or "index.html" if no suffix is provided.
encoding
The character encoding to use to interpret the template. If no encoding is specified, the default encoding is used. The template is read from the filesystem, and converted into a String using this encoding. All template processing is done using the String representation.
outputEncoding
The character encoding to use to interpret the template results. If no "outputEncoding" is specified, then "encoding" is used. Once template processing is complete, the results are converted into a byte stream for transmission to the client using the "outputEncoding", if specified. If not specified then the HTTP default (8-bit ASCII) encoding is used.
modified
if present (e.g. set to any value) an HTTP last-modified header is added to the response with the current time.
debug if set to "true", template debugging is enabled: templates will emit their pre-processed markup as an HTML comment. This parameter only takes effect if the debug option is not specified for an individual template.
tagPrefix
If specified, all tag names defined for each template class are prefixed with tagPrefix. This parameter only takes effect if the tagPrefix option is not specified for an individual template.

The request properties DirectoryName, fileName and lastModified may be set as a convenience for downstream handlers.

This handler duplicates some of the functionality of the template filter, so that it may be used by itself in simple configurations. As such, if issues re-directs if directories are given without a trailing "/", and uses an "index" file (see default above) if a directory name is specified.

To filter content other than from the file system, use the template filter instead.

Version: 2.8 07/01/08

Author: Stephen Uhler (stephen.uhler@sun.com) Colin Stevens (colin.stevens@sun.com)

Method Summary
StringgetContent(Request request, File file, String encoding)
get the content associated with this template.
booleaninit(Server server, String propsPrefix)
booleanrespond(Request request)
Process an html template file, using the supplied template processing classes.

Method Detail

getContent

public String getContent(Request request, File file, String encoding)
get the content associated with this template. This version reads it from a file.

Parameters: request The standard request object file The file object to get the template from

Returns: The content of the template to be processed

init

public boolean init(Server server, String propsPrefix)

respond

public boolean respond(Request request)
Process an html template file, using the supplied template processing classes.