sunlabs.brazil.filter

Class TemplateFilter

public class TemplateFilter extends Object implements Filter

The TemplateFilter sends HTML content through an Html/XML parser to a set of Templates. Each Html/XML tag may dynamically invoke a Java method present in the Templates. The dynamically-generated content from evaluating the Html/XML tags is returned to the caller.

The following configuration parameters are used to initialize this Filter.

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 request property that contains the session ID. If no "session" property is found with the supplied prefix, then the global "session" property is used instead. The default value is "SessionID".
subtype
Restrict this template to only handle specified text sub-types. defaults to the empty string, which implies any text sub-type.
encoding
The charset encoding to use to represent the content as text. If none is specified, the default encoding is used.
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 next filter, using "outputEncoding", if specified. If not specified then the default encoding is used.
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 TemplateHandler class is similar, but not identical to running a FilterHandler with the FileHandler and the TemplateFilter. The differences between the two should be resolved.

Note: The templates property accepts a list of class names or tokens that could be used to represent class names. If class names are used, all template classes share the TemplateHandler's properties prefix.

Version: 2.4

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

Method Summary
byte[]filter(Request request, MimeHeaders headers, byte[] content)
Evaluates the content as html/XML tags, if the file is (or has now been converted to) "text/html".
booleaninit(Server server, String prefix)
booleanrespond(Request request)
No action before request is made
booleanshouldFilter(Request request, MimeHeaders headers)
Filters all HTML files, or files that are likely to be html files, specifically, those whose "Content-Type" starts with "text/".

Method Detail

filter

public byte[] filter(Request request, MimeHeaders headers, byte[] content)
Evaluates the content as html/XML tags, if the file is (or has now been converted to) "text/html".

init

public boolean init(Server server, String prefix)

respond

public boolean respond(Request request)
No action before request is made

shouldFilter

public boolean shouldFilter(Request request, MimeHeaders headers)
Filters all HTML files, or files that are likely to be html files, specifically, those whose "Content-Type" starts with "text/".