org.apache.struts.tiles
Class TilesRequestProcessor
public class TilesRequestProcessor
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:
protected void | doForward(String uri, HttpServletRequest request, HttpServletResponse response) - Do a forward using request dispatcher.
|
DefinitionsFactory | getDefinitionsFactory() - Get associated definition factory.
|
void | init(ActionServlet servlet, ModuleConfig moduleConfig) - Initialize this request processor instance.
|
protected void | initDefinitionsMapping() - Read component instance mapping configuration file.
|
protected void | internalModuleRelativeForward(String uri, HttpServletRequest request, HttpServletResponse response) - Catch the call to a module relative forward.
|
protected void | internalModuleRelativeInclude(String uri, HttpServletRequest request, HttpServletResponse response) - Do a module relative include to specified uri using request dispatcher.
|
protected void | processForwardConfig(HttpServletRequest request, HttpServletResponse response, ForwardConfig forward) - Overloaded method from Struts' RequestProcessor.
|
protected boolean | processTilesDefinition(String definitionName, boolean contextRelative, HttpServletRequest request, HttpServletResponse response) - Process a Tile definition name.
|
destroy , doForward , doInclude , getInternal , getServletContext , init , internalModuleRelativeForward , internalModuleRelativeInclude , log , log , process , processActionCreate , processActionForm , processActionPerform , processCachedMessages , processContent , processException , processForward , processForwardConfig , processInclude , processLocale , processMapping , processMultipart , processNoCache , processPath , processPopulate , processPreprocess , processRoles , processValidate |
log
protected static Log log
Commons Logging instance.
doForward
protected void doForward(String uri,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,
ServletException
Do a forward using request dispatcher.
Uri is a valid uri. If response has already been commited, do an include
instead.
- doForward in interface RequestProcessor
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)
throws ServletException
Initialize this request processor instance.
- init in interface RequestProcessor
servlet
- The ActionServlet we are associated with.moduleConfig
- The ModuleConfig we are associated with.
initDefinitionsMapping
protected void initDefinitionsMapping()
throws ServletException
Read component instance mapping configuration file.
This is where we read files properties.
internalModuleRelativeForward
protected void internalModuleRelativeForward(String uri,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,
ServletException
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.
- internalModuleRelativeForward in interface RequestProcessor
uri
- Module-relative URI to forward to.request
- Current page request.response
- Current page response.
internalModuleRelativeInclude
protected void internalModuleRelativeInclude(String uri,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,
ServletException
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.
- internalModuleRelativeInclude in interface RequestProcessor
uri
- Module-relative URI to forward to.request
- Current page request.response
- Current page response.
processForwardConfig
protected void processForwardConfig(HttpServletRequest request,
HttpServletResponse response,
ForwardConfig forward)
throws IOException,
ServletException
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.
- processForwardConfig in interface RequestProcessor
request
- The servlet request we are processing.response
- The servlet response we are creating.forward
- The ActionForward controlling where we go next.
processTilesDefinition
protected boolean processTilesDefinition(String definitionName,
boolean contextRelative,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,
ServletException
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.
definitionName
- Definition name to insert.contextRelative
- Is the definition marked contextRelative ?request
- Current page request.response
- Current page response.
true
if the method has processed uri as a definition name, false
otherwise.
Copyright B) 2000-2007 - The Apache Software Foundation