Class TilesPlugin

java.lang.Object
org.apache.struts.tiles.TilesPlugin
All Implemented Interfaces:
PlugIn

public class TilesPlugin extends Object implements PlugIn
Tiles Plugin used to initialize Tiles. This plugin is to be used with Struts 1.1 in association with TilesRequestProcessor.
This plugin creates one definition factory for each Struts-module. The definition factory configuration is read first from 'web.xml' (backward compatibility), then it is overloaded with values found in the plugin property values.
The plugin changes the Struts configuration by specifying a TilesRequestProcessor as request processor. If you want to use your own RequestProcessor, it should subclass TilesRequestProcessor.
This plugin can also be used to create one single factory for all modules. This behavior is enabled by specifying moduleAware=false in each plugin properties. In this case, the definition factory configuration file is read by the first Tiles plugin to be initialized. The order is determined by the order of modules declaration in web.xml. The first module is always the default one if it exists. The plugin should be declared in each struts-config.xml file in order to properly initialize the request processor.
Since:
Struts 1.1
  • Field Details

    • moduleAware

      protected boolean moduleAware
      Is the factory module aware?
    • tilesUtilImplClassname

      protected String tilesUtilImplClassname
      Tiles util implementation classname. This property can be set by user in the plugin declaration.
    • definitionFactory

      protected DefinitionsFactory definitionFactory
      Associated definition factory.
    • currentPlugInConfigObject

      protected PlugInConfig currentPlugInConfigObject
      The plugin config object provided by the ActionServlet initializing this plugin.
  • Constructor Details

    • TilesPlugin

      public TilesPlugin()
  • Method Details

    • isModuleAware

      public boolean isModuleAware()
      Get the module aware flag.
      Returns:
      true: user wants a single factory instance, false: user wants multiple factory instances (one per module with Struts)
    • setModuleAware

      public void setModuleAware(boolean moduleAware)
      Set the module aware flag. This flag is only meaningful if the property tilesUtilImplClassname is not set.
      Parameters:
      moduleAware - true: user wants a single factory instance, false: user wants multiple factory instances (one per module with Struts)
    • init

      public void init(ActionServlet servlet, ModuleConfig moduleConfig) throws ServletException

      Receive notification that the specified module is being started up.

      Specified by:
      init in interface PlugIn
      Parameters:
      servlet - ActionServlet that is managing all the modules in this web application.
      moduleConfig - ModuleConfig for the module with which this plugin is associated.
      Throws:
      ServletException - if this PlugIn cannot be successfully initialized.
    • destroy

      public void destroy()
      End plugin.
      Specified by:
      destroy in interface PlugIn
    • readFactoryConfig

      protected DefinitionsFactoryConfig readFactoryConfig(ActionServlet servlet, ModuleConfig config) throws ServletException
      Create FactoryConfig and initialize it from web.xml and struts-config.xml.
      Parameters:
      servlet - ActionServlet that is managing all the modules in this web application.
      config - ModuleConfig for the module with which this plugin is associated.
      Throws:
      ServletException - if this PlugIn cannot be successfully initialized.
    • findStrutsPlugInConfigProperties

      protected Map<String,Object> findStrutsPlugInConfigProperties(ActionServlet servlet, ModuleConfig config) throws ServletException
      Find original properties set in the Struts PlugInConfig object. First, we need to find the index of this plugin. Then we retrieve the array of configs and then the object for this plugin.
      Parameters:
      servlet - ActionServlet that is managing all the modules in this web application.
      config - ModuleConfig for the module with which this plug in is associated.
      Throws:
      ServletException - if this PlugIn cannot be successfully initialized.
    • initRequestProcessorClass

      protected void initRequestProcessorClass(ModuleConfig config) throws ServletException
      Set RequestProcessor to appropriate Tiles RequestProcessor. First, check if a RequestProcessor is specified. If yes, check if it extends the appropriate TilesRequestProcessor class. If not, set processor class to TilesRequestProcessor.
      Parameters:
      config - ModuleConfig for the module with which this plugin is associated.
      Throws:
      ServletException - On errors.
    • setTilesUtilImplClassname

      public void setTilesUtilImplClassname(String tilesUtilImplClassname)
      Set Tiles util implemention classname. If this property is set, the flag moduleAware will not be used anymore.
      Parameters:
      tilesUtilImplClassname - Classname.
    • getTilesUtilImplClassname

      public String getTilesUtilImplClassname()
      Get Tiles util implemention classname.
      Returns:
      The classname or null if none is set.
    • setCurrentPlugInConfigObject

      public void setCurrentPlugInConfigObject(PlugInConfig plugInConfigObject)
      Method used by the ActionServlet initializing this plugin. Set the plugin config object read from module config.
      Parameters:
      plugInConfigObject - PlugInConfig.