Action Class

You can use ApexPages.Action to create an action method that you can use in a Visualforce custom controller or controller extension.

Namespace

ApexPages

Usage

For example, you could create a saveOver method on a controller extension that performs a custom save.

Instantiation

The following code snippet illustrates how to instantiate a new ApexPages.Action object that uses the save action:
ApexPages.Action saveAction = new ApexPages.Action('{!save}');

Example

In the following example, when the user updates or creates a new Account and clicks the Save button, in addition to the account being updated or created, the system writes a message to the system debug log. This example extends the standard controller for Account.

The following is the controller extension.
public class pageCon{
    public PageReference RedirectToStep2(){
        // ...
        // ...
        return Page.Step2;
    }
}
The following is the Visualforce markup for a page that uses the above controller extension.
<apex:component>
    <apex:attribute name="actionToInvoke" type="ApexPages.Action" ... />
    ...
    <apex:commandButton value="Perform Controller Action" action="{!actionToInvoke}"/>
</apex:component>

<apex:page controller="pageCon">
    ...
    <c:myComp actionToInvoke="{!RedirectToStep2}"/>
</apex:page>
For information on the debug log, see “Viewing Debug Logs” in the Salesforce online help.

Action Constructors

The following are constructors for Action.

Action(action)

Creates a new instance of the ApexPages.Action class using the specified action.

Signature

public Action(String action)

Parameters

action
Type: String
The action.

Action Methods

The following are methods for Action. All are instance methods.

getExpression()

Returns the expression that is evaluated when the action is invoked.

Signature

public String getExpression()

Return Value

Type: String

invoke()

Invokes the action.

Signature

public System.PageReference invoke()

Return Value

Type: System.PageReference