org.apache.struts.tiles

Class TilesRequestProcessor

public class TilesRequestProcessor extends RequestProcessor

RequestProcessor contains the processing logic that the Struts controller servlet performs as it receives each servlet request from the container.

This processor subclasses the Struts RequestProcessor in order to intercept calls to forward or include. When such calls are done, the Tiles processor checks if the specified URI is a definition name. If true, the definition is retrieved and included. If false, the original URI is included or a forward is performed.

Actually, catching is done by overloading the following methods:

Since: Struts 1.1

Field Summary
protected DefinitionsFactorydefinitionsFactory
Definitions factory.
protected static Loglog
Commons Logging instance.
Method Summary
protected voiddoForward(String uri, HttpServletRequest request, HttpServletResponse response)
Do a forward using request dispatcher.
DefinitionsFactorygetDefinitionsFactory()
Get associated definition factory.
voidinit(ActionServlet servlet, ModuleConfig moduleConfig)
Initialize this request processor instance.
protected voidinitDefinitionsMapping()
Read component instance mapping configuration file.
protected voidinternalModuleRelativeForward(String uri, HttpServletRequest request, HttpServletResponse response)
Catch the call to a module relative forward.
protected voidinternalModuleRelativeInclude(String uri, HttpServletRequest request, HttpServletResponse response)
Do a module relative include to specified uri using request dispatcher.
protected voidprocessForwardConfig(HttpServletRequest request, HttpServletResponse response, ForwardConfig forward)
Overloaded method from Struts' RequestProcessor.
protected booleanprocessTilesDefinition(String definitionName, boolean contextRelative, HttpServletRequest request, HttpServletResponse response)
Process a Tile definition name.

Field Detail

definitionsFactory

protected DefinitionsFactory definitionsFactory
Definitions factory.

log

protected static Log log
Commons Logging instance.

Method Detail

doForward

protected void doForward(String uri, HttpServletRequest request, HttpServletResponse response)
Do a forward using request dispatcher. Uri is a valid uri. If response has already been commited, do an include instead.

Parameters: uri Uri or Definition name to forward. request Current page request. response Current page response.

getDefinitionsFactory

public DefinitionsFactory getDefinitionsFactory()
Get associated definition factory.

init

public void init(ActionServlet servlet, ModuleConfig moduleConfig)
Initialize this request processor instance.

Parameters: servlet The ActionServlet we are associated with. moduleConfig The ModuleConfig we are associated with.

Throws: ServletException If an error occurs during initialization.

initDefinitionsMapping

protected void initDefinitionsMapping()
Read component instance mapping configuration file. This is where we read files properties.

internalModuleRelativeForward

protected void internalModuleRelativeForward(String uri, HttpServletRequest request, HttpServletResponse response)
Catch the call to a module relative forward. If the specified uri is a tiles definition name, insert it. Otherwise, parent processing is called. Do a module relative forward to specified uri using request dispatcher. Uri is relative to the current module. The real uri is computed by prefixing the module name. This method is used internally and is not part of the public API. It is advised to not use it in subclasses.

Parameters: uri Module-relative URI to forward to. request Current page request. response Current page response.

Since: Struts 1.1

internalModuleRelativeInclude

protected void internalModuleRelativeInclude(String uri, HttpServletRequest request, HttpServletResponse response)
Do a module relative include to specified uri using request dispatcher. Uri is relative to the current module. The real uri is computed by prefixing the module name. This method is used internally and is not part of the public API. It is advised to not use it in subclasses.

Parameters: uri Module-relative URI to forward to. request Current page request. response Current page response.

Since: Struts 1.1

processForwardConfig

protected void processForwardConfig(HttpServletRequest request, HttpServletResponse response, ForwardConfig forward)
Overloaded method from Struts' RequestProcessor. Forward or redirect to the specified destination by the specified mechanism. This method catches the Struts' actionForward call. It checks if the actionForward is done on a Tiles definition name. If true, process the definition and insert it. If false, call the original parent's method.

Parameters: request The servlet request we are processing. response The servlet response we are creating. forward The ActionForward controlling where we go next.

Throws: IOException if an input/output error occurs. ServletException if a servlet exception occurs.

processTilesDefinition

protected boolean processTilesDefinition(String definitionName, boolean contextRelative, HttpServletRequest request, HttpServletResponse response)
Process a Tile definition name. This method tries to process the parameter definitionName as a definition name. It returns true if a definition has been processed, or false otherwise. Parameter contextRelative is not used in this implementation.

Parameters: definitionName Definition name to insert. contextRelative Is the definition marked contextRelative ? request Current page request. response Current page response.

Returns: true if the method has processed uri as a definition name, false otherwise.

Copyright B) 2000-2008 - The Apache Software Foundation