Package sunlabs.brazil.filter
Class TemplateFilter
java.lang.Object
sunlabs.brazil.filter.TemplateFilter
The
TemplateFilter
sends HTML content through an
Html/XML parser to a set of Template
s. Each Html/XML tag may
dynamically invoke a Java method present in the Template
s.
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. Thenname
is used as the prefix for other template specific properties if any. Ifname.class
does not exist, thenname
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.
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)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]
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".boolean
Initializes the handler.boolean
No action before request is madeboolean
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/".
-
Constructor Details
-
TemplateFilter
public TemplateFilter()
-
-
Method Details
-
init
Description copied from interface:Handler
Initializes the handler.- Specified by:
init
in interfaceHandler
- Parameters:
server
- The HTTP server that created thisHandler
. TypicalHandler
s will useServer.props
to obtain run-time configuration information.prefix
- The handlers name. The string thisHandler
may prepend to all of the keys that it uses to extract configuration information fromServer.props
. This is set (by theServer
andChainHandler
) to help avoid configuration parameter namespace collisions.- Returns:
true
if thisHandler
initialized successfully,false
otherwise. Iffalse
is returned, thisHandler
should not be used.
-
respond
No action before request is made -
shouldFilter
Filters all HTML files, or files that are likely to be html files, specifically, those whose "Content-Type" starts with "text/".- Specified by:
shouldFilter
in interfaceFilter
- Parameters:
request
- The in-progress HTTP request.headers
- The MIME headers generated by the wrappedHandler
.- Returns:
true
if this filter would like to examine and possibly rewrite the content,false
otherwise.
-
filter
Evaluates the content as html/XML tags, if the file is (or has now been converted to) "text/html".- Specified by:
filter
in interfaceFilter
- Parameters:
request
- The finished HTTP request.headers
- The MIME headers generated by theHandler
.content
- The output from theHandler
that thisFilter
may rewrite.- Returns:
- The rewritten content. The
Filter
may return the originalcontent
unchanged. TheFilter
may returnnull
to indicate that theFilterHandler
should stop processing the request and should not return any content to the client.
-