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 String
protected boolean
Indicates if there is a MethodExceptionEventHandler presentprotected Stack
A stack to hold ComponentContexts while nested tile-definitions are rendered.(package private) static final String
(package private) static final String
(package private) static final String
protected org.apache.velocity.context.Context
Fields 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 String
An extension of the other two doInsert functionsprotected String
Use this if there is no nested tile.protected String
Use 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 ComponentContext
Retrieve the current tiles component context.void
importAttribute
(String name) Imports the named attribute-value from the current tiles-context into the current Velocity context.void
importAttribute
(String name, String scope) Imports the named attribute-value from the current tiles-context into the named context ("page", "request", "session", or "application").void
Imports all attributes in the current tiles-context into the current velocity-context.void
importAttributes
(String scope) Imports all attributes in the current tiles-context into the named context ("page", "request", "session", or "application").void
Deprecated.protected void
Pops the tiles sub-context off the context-stack after the lower level tiles have been rendered.protected String
Try to process name as a definition, or as an URL if not found.protected String
processDefinition
(ComponentDefinition definition) End of Process for definition.protected String
processObjectValue
(Object value) Process an object retrieved as a bean or attribute.protected String
processTypedAttribute
(AttributeDefinition value) Process typed attribute according to its type.protected String
processUrl
(String url) Processes an urlprotected void
pushes the current tiles context onto the context-stack.void
setCatchExceptions
(boolean catchExceptions) void
setVelocityContext
(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.
-