Explicitely configure an {@link ActionForward} instead of an {@link Action}.

@param  ActionForward $forward

@return $this

@throws StrutsConfigException on configuration errors
425049
public function setForward(ActionForward $forward) {
        if ($this->configured) throw new IllegalStateException('Configuration is frozen');
        $name = $this->name ? ' name="'.$this->name.'"':'';
        $path = $this->path ? ' path="'.$this->path.'"':'';

        if ($this->actionClassName) throw new StrutsConfigException('<mapping'.$name.$path.': Only one of "action", "include", "forward" or "redirect" can be specified.');

        $this->forward = $forward;
        return $this;
    }
426662
public function forward()
    {
        $this->getDriver()->curl($this->getDriver()->factoryCommand('forward', WebDriver_Command::METHOD_POST));
        return $this;
    }
720006
public function forward()
    {
        if ($this->position > count($this->stack) - 2) {
            throw new \LogicException('You are already on the last page.');
        }

        return clone $this->stack[++$this->position];
    }
268872
protected function insertNearInternal($forward)
    {
        $this->checkNode(true);
        $key = $this->owner->{$this->keyAttribute};
        if ($key !== null) {
            $path = $this->node->getPath();
            $this->owner->{$this->pathAttribute} = $this->convertPathFromPhpToPg($path);
        }
        if ($this->positionAttribute !== null) {
            $position = $this->node->{$this->positionAttribute};
            if ($forward) {
                $position++;
            } else {
                $position--;
            }
            $this->owner->{$this->positionAttribute} = $position;
        }
    }
1361143
public void savePreviousPageInfo( ActionForward forward, ActionForm form, ActionMapping mapping,
                                      HttpServletRequest request, ServletContext servletContext,
                                      boolean isSpecialForward )
    {
    }
873313
public function setForwardedDocument(\AgentSIB\Diadoc\Api\Proto\Forwarding\ForwardedDocument $value = null)
    {
        $this->ForwardedDocument = $value;
    }
141672
public function forward($action, $controller = null, $extension = null, $params = array())
	{
        //as we use a route resolver, it's easier to rebuild the URL to resolve it 
        $this->forwardUrl(\tao_helpers_Uri::url($action, $controller, $extension, $params));
	}
1257568
public function setCoreAllowForwardAcrossContexts($value)
    {
        $this->setFieldName('allow_forward_across_contexts');
        $this->loadObject(true);
        $this->setFieldValue($value);

        return $this;
    }
63708
public function setCurrentAction($action,array $actionArgs = array()){
        $action = (string) $action;
        if (array_key_exists($action,$this->actions)){
            $this->action = $action;
            $this->configureAction($this->action,$actionArgs);
        }
        return $this;
    }
376225
public function forward( $params )
	{
        $controller_name = $params["controller"];
        $action_name     = $params["action"];
        $params          = isset($params["params"]) ? $params["params"] : array();

        $this->_route->setControllerName( $controller_name );
        $this->_route->setActionName( $action_name );
        $this->_route->setParams( $params );

		$this->_was_forwarded = true;
	}
872290
public function getForwardFunction()
    {
        if ($this->forwardFunction)
            return $this->forwardFunction;
        if ($this->getParent())
            return $this->getParent()->getForwardFunction();
        return null;
    }
1096851
public function forwardUrl($url){

        //get the current request
        $request = common_http_Request::currentRequest();
        $params = $request->getParams();

        //parse the given URL
        $parsedUrl = parse_url($url);

        //if new parameters are given, then merge them 
        if(isset($parsedUrl['query']) && strlen($parsedUrl['query']) > 0){
            $newParams = array();
            parse_str($parsedUrl['query'], $newParams);
            if(count($newParams) > 0){
                $params = array_merge($params, $newParams);
            }
        }

        //resolve the given URL for routing
        $resolver = new Resolver(new common_http_Request($parsedUrl['path'], $request->getMethod(), $params));
        $this->propagate($resolver);

	    $context = Context::getInstance();

        // load the responsible extension
        common_ext_ExtensionsManager::singleton()->getExtensionById($resolver->getExtensionId());
   
        //update the context to the new route
        $context->setExtensionName($resolver->getExtensionId());
        $context->setModuleName($resolver->getControllerShortName());
		$context->setActionName($resolver->getMethodName());
        if(count($params) > 0){
            $context->getRequest()->addParameters($params);
        }

        //add a custom header so the client knows where the route ends
        header(self::FORWARD_HEADER . ': ' . $resolver->getExtensionId() . '/' .  $resolver->getControllerShortName() . '/' . $resolver->getMethodName());

        //execite the new action
        $enforcer = new ActionEnforcer($resolver->getExtensionId(), $resolver->getControllerClass(), $resolver->getMethodName(), $params);
        $this->propagate($enforcer);
        $enforcer->execute();

        //should not be reached
        throw new InterruptedActionException('Interrupted action after a forward',
                                             $context->getModuleName(),
                                             $context->getActionName());
                
    }
1089056
public function forwardAction()
    {
        /**************
         * Find token *
         **************/

        if (! $this->_initToken()) {
            if ($this->tokenId) {
                // There is a token but is incorrect
                $this->addMessage(sprintf(
                        $this->_('The token %s does not exist (any more).'),
                        strtoupper($this->tokenId)
                        ));
            }
            $this->_forward('index');
            return;
        }

        if ($this->util->getMaintenanceLock()->isLocked()) {
            $this->addSnippet($this->maintenanceModeSnippets, ['token' => $this->token]);
            return;
        }

        /****************************
         * Update open tokens first *
         ****************************/
        $this->tracker->processCompletedTokens(
                $this->token->getRespondentId(),
                $this->token->getChangedBy(),
                $this->token->getOrganizationId()
                );

        $screen = $this->token->getOrganization()->getTokenAskScreen();
        if ($screen) {
            $params   = $screen->getParameters($this->token);
            $snippets = $screen->getSnippets($this->token);
            if (false !== $snippets) {
                $this->forwardSnippets = $snippets;
            }
        }
        $params['token'] = $this->token;

        // Display token when possible
        if ($this->html->snippet($this->forwardSnippets, $params)) {
            return;
        }

        // Snippet had nothing to display, because of an answer
        if ($this->getRequest()->getActionName() == 'return') {
            $this->addMessage(sprintf(
                    $this->_('Thank you for answering. At the moment we have no further surveys for you to take.'),
                    strtoupper($this->tokenId)
                    ));
        } else {
            $this->addMessage(sprintf(
                    $this->_('The survey for token %s has been answered and no further surveys are open.'),
                    strtoupper($this->tokenId)
                    ));
        }

        // Do not enter a loop!! Reroute!
        $this->_reroute(array('controller' => 'ask', 'action' => 'index'), true);
    }
787710
public function add( models\NAT\PortForwardingConfig $portForwardingConfig){
        $rest = $this->getService( self::API_NAT_REDIR);
        $rest->POST( $portForwardingConfig);

        return $rest->getResult( models\NAT\PortForwardingConfig::class);
    }
249492
protected function _getControllerActionConfiguration($actionName, $config)
    {
        $realAction = Hash::get($config, 'url.action', $actionName);
        if ($this->_crud()->isActionMapped($realAction)) {
            $action = $this->_action($realAction);
            $class = get_class($action);
            $class = substr($class, strrpos($class, '\\') + 1);

            if ($class === 'DeleteAction') {
                $config += ['method' => 'DELETE'];
            }

            if (!isset($config['scope'])) {
                $config['scope'] = $class === 'AddAction' ? 'table' : $action->scope();
            }
        }

        // apply defaults if necessary
        $scope = isset($config['scope']) ? $config['scope'] : 'entity';
        $method = isset($config['method']) ? $config['method'] : 'GET';

        $title = !empty($config['link_title']) ? $config['link_title'] : Inflector::humanize(Inflector::underscore($actionName));
        $url = ['action' => $realAction];
        if (isset($config['url'])) {
            $url = $config['url'] + $url;
        }

        $actionConfig = [
            'title' => $title,
            'url' => $url,
            'method' => $method,
            'options' => array_diff_key(
                $config,
                array_flip(['method', 'scope', 'link_title', 'url', 'scaffold', 'callback'])
            )
        ];
        if (!empty($config['callback'])) {
            $actionConfig['callback'] = $config['callback'];
        }

        return [$scope, $actionConfig];
    }
1075010
public void savePreviousPageInfo( ActionForward forward, ActionForm form, ActionMapping mapping,
                                      HttpServletRequest request, ServletContext servletContext,
                                      boolean isSpecialForward )
    {
        //
        // Special case: if the given forward has a path to a page in the current pageflow, let that pageflow save
        // the info on this page.  Otherwise, don't ever save any info on what we're forwarding to.
        //
        if ( ! isSpecialForward && forward != null )  // i.e., it's a straight Forward to a path, not a navigateTo, etc.
        {
            PageFlowController currentJpf = PageFlowUtils.getCurrentPageFlow( request, getServletContext() );
            
            if ( currentJpf != null )
            {
                if ( forward.getContextRelative() && forward.getPath().startsWith( currentJpf.getModulePath() ) )
                {
                    currentJpf.savePreviousPageInfo( forward, form, mapping, request, servletContext, isSpecialForward );
                }
            }
        }
    }
1220490
public function forward_key( $key = true )
	{
		if ( $key === false )
		{
			$this->forward_key = false;
		}
		elseif ( $key === true )
		{
			$this->forward_key = \ClanCats::$config->get( 'database.default_primary_key', 'id' );
		}
		else
		{
			$this->forward_key = $key;
		}
		
		return $this;
	}