Class TilesPreProcessor

java.lang.Object
org.apache.struts.tiles.commands.TilesPreProcessor
All Implemented Interfaces:
org.apache.commons.chain.Command<ServletActionContext>

public class TilesPreProcessor extends Object implements org.apache.commons.chain.Command<ServletActionContext>
Command class intended to perform responsibilities of the TilesRequestProcessor in Struts 1.1. Does not actually dispatch requests, but simply prepares the chain context for a later forward as appropriate. Should be added to a chain before something which would handle a conventional ForwardConfig.

This class will never have any effect on the chain unless a TilesDefinitionFactory can be found; however it does not consider the absence of a definition factory to be a fatal error; the command simply returns false and lets the chain continue.

To initialize the TilesDefinitionFactory, use org.apache.struts.chain.commands.legacy.TilesPlugin. This class is a simple extension to org.apache.struts.tiles.TilesPlugin which simply does not interfere with your choice of RequestProcessor implementation.

  • Constructor Details

    • TilesPreProcessor

      public TilesPreProcessor()
  • Method Details

    • execute

      public boolean execute(ServletActionContext sacontext) throws Exception
      If the current ForwardConfig is using "tiles", perform necessary pre-processing to set up the TilesContext and substitute a new ForwardConfig which is understandable to a RequestDispatcher.

      Note that if the command finds a previously existing ComponentContext in the request, then it infers that it has been called from within another tile, so instead of changing the ForwardConfig in the chain Context, the command uses RequestDispatcher to include the tile, and returns true, indicating that the processing chain is complete.

      Specified by:
      execute in interface org.apache.commons.chain.Command<ServletActionContext>
      Parameters:
      sacontext - The Context for the current request
      Returns:
      false in most cases, but true if we determine that we're processing in "include" mode.
      Throws:
      Exception
    • doInclude

      protected void doInclude(ServletActionContext context, String uri) throws IOException, ServletException
      Do an include of specified URI using a RequestDispatcher.
      Parameters:
      context - a chain servlet/web context
      uri - Context-relative URI to include
      Throws:
      IOException
      ServletException
    • doForward

      protected void doForward(ServletActionContext context, String uri) throws IOException, ServletException
      Do an include of specified URI using a RequestDispatcher.
      Parameters:
      context - a chain servlet/web context
      uri - Context-relative URI to include
      Throws:
      IOException
      ServletException