Class IncludeTool
- Direct Known Subclasses:
MultiViewsTool
Reads the default language out of the ViewToolContext as
org.apache.velocity.tools.view.i18n.defaultLanguage
.
See find(String, String)
, find(String, Locale)
and exists(String)
for usage.
This is the successor to the MultiViewsTool in VelocityTools 1.x. Please note that it does NOT do the actual #include or #parse for you, but is merely to aid in include content negotiation.
- Since:
- VelocityTools 2.0
- Version:
- $Id: IncludeTool.java 730292 2008-12-31 01:31:09Z nbubna $
- Author:
- Daniel Rall, Nathan Bubna
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Extracts the default language from the specifiedViewContext
, looking first at the Velocity context, then the servlet context, then lastly at the JVM default.protected void
configure
(ViewToolContext ctx) boolean
Checks to see whether a #parse-able template or #include-able resource exists under the specified name/path.boolean
Checks to see whether a localized version of the named template exists for the specified language.Callsfind(String, String)
using the default language.Finds the a localized version of the requested Velocity resource (such as a file or template) which is most appropriate for the locale of the current request.Callsfind(String, String)
using the language extracted fromlocale
.
-
Field Details
-
DEFAULT_LANGUAGE_KEY
The key used to search initialization, context, and JVM parameters for the default language to use.- See Also:
-
defaultLanguage
The two character abbreviation for the request's default language. -
engine
protected org.apache.velocity.app.VelocityEngine engine
-
-
Constructor Details
-
IncludeTool
public IncludeTool()
-
-
Method Details
-
configure
Extracts the default language from the specifiedViewContext
, looking first at the Velocity context, then the servlet context, then lastly at the JVM default. This "narrow scope to wide scope" pattern makes it easy to setup language overrides at different levels within your application.- Parameters:
params
- theMap
of configuration parameters- Throws:
IllegalArgumentException
- if the param is not a ViewContext
-
configure
-
find
Callsfind(String, String)
using the language extracted fromlocale
.- See Also:
-
find
Callsfind(String, String)
using the default language.- See Also:
-
find
Finds the a localized version of the requested Velocity resource (such as a file or template) which is most appropriate for the locale of the current request. Use in conjuction with Apache httpd's
MultiViews
, or by itself.Usage from a template would be something like the following:
You might also wrap this method using another pull/view tool which does internationalization/localization/content negation for a single point of access.#parse( $include.find('header.vm', 'en') ) #include( $include.find('my_page.html', 'en') ) #parse( $include.find('footer.vm', 'en') )
- Parameters:
name
- The unlocalized name of the file to find.language
- The language to find localized context for.- Returns:
- The localized file name, or
name
if it is not localizable.
-
exists
Checks to see whether a #parse-able template or #include-able resource exists under the specified name/path.
Usage from a template would be something like the following:
#if( $include.exists('header.vm') ) #parse( 'header.vm' ) #end
- See Also:
-
VelocityEngine.resourceExists(java.lang.String)
-
exists
Checks to see whether a localized version of the named template exists for the specified language.- See Also:
-