/**
   * Cache the <code>ModuleConfig</code> and <code>MessageResources</code> instances for the
   * sub-application module to be used for processing this request.
   *
   * @param actionCtx The <code>Context</code> for the current request
   * @return <code>false</code> so that processing continues
   * @throws IllegalArgumentException if no valid ModuleConfig or MessageResources can be identified
   *     for this request
   * @throws Exception if thrown by the Action class
   */
  public boolean execute(ActionContext actionCtx) throws Exception {
    String prefix = getPrefix(actionCtx);

    // Cache the corresponding ModuleConfig and MessageResources instances
    ModuleConfig moduleConfig =
        (ModuleConfig) actionCtx.getApplicationScope().get(Globals.MODULE_KEY + prefix);

    if (moduleConfig == null) {
      throw new IllegalArgumentException("No module config for prefix '" + prefix + "'");
    }

    actionCtx.setModuleConfig(moduleConfig);

    String key = Globals.MESSAGES_KEY + prefix;
    MessageResources messageResources = (MessageResources) actionCtx.getApplicationScope().get(key);

    if (messageResources == null) {
      throw new IllegalArgumentException(
          "No message resources found in application scope under " + key);
    }

    actionCtx.setMessageResources(messageResources);

    return (false);
  }
  /**
   * Set common properties on the given <code>ActionContext</code> instance so that commands in the
   * chain can count on their presence. Note that while this method does not require that its
   * argument be an instance of <code>ServletActionContext</code>, at this time many common Struts
   * commands will be expecting to receive an <code>ActionContext</code> which is also a <code>
   * ServletActionContext</code>.
   *
   * @param context The ActionContext we are processing
   */
  protected void initializeActionContext(ActionContext context) {
    if (context instanceof ServletActionContext) {
      ((ServletActionContext) context).setActionServlet(this.servlet);
    }

    context.setModuleConfig(this.moduleConfig);
  }