Class TilesTool
The TilesTool is used to interact with the Struts-Tiles framework that is part of Struts 1.
Template example(s):
<!-- insert a tile -->
$tiles.myTileDefinition
<!-- get named attribute value from the current tiles-context -->
$tiles.getAttribute("myTileAttribute")
<!-- import all attributes of the current tiles-context into the velocity-context. -->
$tiles.importAttributes()
Toolbox configuration:
<tools>
<toolbox scope="request">
<tool class="org.apache.velocity.tools.struts.TilesTool"/>
</toolbox>
</tools>
This tool may only be used in the request scope.
- Since:
- VelocityTools 1.1
- Version:
- $Revision: 601976 $ $Date: 2007-12-06 19:50:51 -0800 (Thu, 06 Dec 2007) $
- Author:
- Marino A. Jonsson
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.velocity.tools.view.ImportSupport
ImportSupport.ImportResponseWrapper, ImportSupport.SafeClosingHttpURLConnectionReader -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final Stringprotected booleanIndicates if there is a MethodExceptionEventHandler presentprotected StackA stack to hold ComponentContexts while nested tile-definitions are rendered.(package private) static final String(package private) static final String(package private) static final Stringprotected org.apache.velocity.context.ContextFields inherited from class org.apache.velocity.tools.view.ImportSupport
application, DEFAULT_ENCODING, LOG, request, response, VALID_SCHEME_CHARS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected StringAn extension of the other two doInsert functionsprotected StringUse this if there is no nested tile.protected StringUse this if there is a nested tile.A generic tiles insert function.getAttribute(String name) Fetches a named attribute-value from the current tiles-context.protected ComponentContextRetrieve the current tiles component context.voidimportAttribute(String name) Imports the named attribute-value from the current tiles-context into the current Velocity context.voidimportAttribute(String name, String scope) Imports the named attribute-value from the current tiles-context into the named context ("page", "request", "session", or "application").voidImports all attributes in the current tiles-context into the current velocity-context.voidimportAttributes(String scope) Imports all attributes in the current tiles-context into the named context ("page", "request", "session", or "application").voidDeprecated.protected voidPops the tiles sub-context off the context-stack after the lower level tiles have been rendered.protected StringTry to process name as a definition, or as an URL if not found.protected StringprocessDefinition(ComponentDefinition definition) End of Process for definition.protected StringprocessObjectValue(Object value) Process an object retrieved as a bean or attribute.protected StringprocessTypedAttribute(AttributeDefinition value) Process typed attribute according to its type.protected StringprocessUrl(String url) Processes an urlprotected voidpushes the current tiles context onto the context-stack.voidsetCatchExceptions(boolean catchExceptions) voidsetVelocityContext(org.apache.velocity.context.Context context) Initializes this tool.Methods inherited from class org.apache.velocity.tools.view.ImportSupport
acquireReader, acquireString, getContentTypeAttribute, isAbsoluteUrl, setLog, setRequest, setResponse, setServletContext, stripSession
-
Field Details
-
PAGE_SCOPE
- See Also:
-
REQUEST_SCOPE
- See Also:
-
SESSION_SCOPE
- See Also:
-
APPLICATION_SCOPE
- See Also:
-
velocityContext
protected org.apache.velocity.context.Context velocityContext -
contextStack
A stack to hold ComponentContexts while nested tile-definitions are rendered. -
catchExceptions
protected boolean catchExceptionsIndicates if there is a MethodExceptionEventHandler present
-
-
Constructor Details
-
TilesTool
public TilesTool()
-
-
Method Details
-
init
Deprecated.Constructors -
setVelocityContext
public void setVelocityContext(org.apache.velocity.context.Context context) Initializes this tool.- Parameters:
context- the currentContext- Throws:
IllegalArgumentException- if the param is not aContext
-
setCatchExceptions
public void setCatchExceptions(boolean catchExceptions) -
get
A generic tiles insert function.This is functionally equivalent to
<tiles:insert attribute="foo" />.- Parameters:
obj- Can be any of the following: AttributeDefinition, tile-definition name, tile-attribute name, regular uri. (checked in that order)- Returns:
- the rendered template or value as a String
- Throws:
Exception- on failure
-
getAttribute
Fetches a named attribute-value from the current tiles-context.This is functionally equivalent to
<tiles:getAsString name="foo" />.- Parameters:
name- the name of the tiles-attribute to fetch- Returns:
- attribute value for the named attribute
-
importAttribute
Imports the named attribute-value from the current tiles-context into the current Velocity context.This is functionally equivalent to
<tiles:importAttribute name="foo" />- Parameters:
name- the name of the tiles-attribute to import
-
importAttribute
Imports the named attribute-value from the current tiles-context into the named context ("page", "request", "session", or "application").This is functionally equivalent to
<tiles:importAttribute name="foo" scope="scopeValue" />- Parameters:
name- the name of the tiles-attribute to importscope- the named context scope to put the attribute into.
-
importAttributes
public void importAttributes()Imports all attributes in the current tiles-context into the current velocity-context.This is functionally equivalent to
<tiles:importAttribute />. -
importAttributes
Imports all attributes in the current tiles-context into the named context ("page", "request", "session", or "application").This is functionally equivalent to
<tiles:importAttribute scope="scopeValue" />.- Parameters:
scope- the named context scope to put the attributes into.
-
processObjectValue
Process an object retrieved as a bean or attribute.- Parameters:
value- - Object can be a typed attribute, a String, or anything else. If typed attribute, use associated type. Otherwise, apply toString() on object, and use returned string as a name.- Returns:
- the fully processed value as String
- Throws:
Exception- - Throws by underlying nested call to processDefinitionName()
-
processTypedAttribute
Process typed attribute according to its type.- Parameters:
value- Typed attribute to process.- Returns:
- the fully processed attribute value as String.
- Throws:
Exception- - Throws by underlying nested call to processDefinitionName()
-
processAsDefinitionOrURL
Try to process name as a definition, or as an URL if not found.- Parameters:
name- Name to process.- Returns:
- the fully processed definition or URL
- Throws:
Exception
-
processDefinition
End of Process for definition.- Parameters:
definition- Definition to process.- Returns:
- the fully processed definition.
- Throws:
Exception- from InstantiationException Can't create requested controller
-
processUrl
Processes an url- Parameters:
url- the URI to process.- Returns:
- the rendered template as String.
- Throws:
Exception
-
doInsert
Use this if there is no nested tile.- Parameters:
page- the page to process.role- possible user-rolecontroller- possible tiles-controller- Returns:
- the rendered template as String.
- Throws:
Exception
-
doInsert
protected String doInsert(Map attributes, String page, String role, Controller controller) throws Exception Use this if there is a nested tile.- Parameters:
attributes- attributes for the sub-contextpage- the page to process.role- possible user-rolecontroller- possible tiles-controller- Returns:
- the rendered template as String.
- Throws:
Exception
-
doInsert
protected String doInsert(ComponentContext subCompContext, String page, String role, Controller controller) throws Exception An extension of the other two doInsert functions- Parameters:
subCompContext- the sub-context to set in scope when the template is rendered.page- the page to process.role- possible user-rolecontroller- possible tiles-controller- Returns:
- the rendered template as String.
- Throws:
Exception
-
getCurrentContext
protected ComponentContext getCurrentContext()Retrieve the current tiles component context. This is pretty much just a convenience method. -
pushTilesContext
protected void pushTilesContext()pushes the current tiles context onto the context-stack. preserving the context is necessary so that a sub-context can be put into request scope and lower level tiles can be rendered
-
popTilesContext
protected void popTilesContext()Pops the tiles sub-context off the context-stack after the lower level tiles have been rendered.
-