Apex コントローラ拡張の使い方のサンプル

環境
Salesforce Apex

1.コントローラ拡張の定義

public class ttControllerExtension {
 
    private final Account acct;
    
    // 引数に標準コントローラを指定して、メソッドを使用してレコードIDを取得します。
    public ttControllerExtension(ApexPages.StandardController stdController) {
        this.acct = (Account)stdController.getRecord();
    }
    //  カスタムアクションメソッドを定義します。
    public String getGreeting() {
        return 'test ' + acct.name + ' (' + acct.id + ')';
    }
}

2. extensionsの属性にコントローラ拡張のApexクラスを指定します

<apex:page standardController="Account" extensions="ttControllerExtension">
    {!greeting} <p/>
    <apex:form>
        <apex:inputField value="{!account.name}"/> <p/>
        <!-- 標準コントローラのSaveメソッドを呼び出します。 -->
        <apex:commandButton value="Save" action="{!save}"/>
    </apex:form>
</apex:page>

説明
1.レコードIDを取得するためにStandardControllerをメソッドを使用しています。
2.カスタムアクションを作成しています。
3.標準コントローラを拡張するためにextensions属性で「ttControllerExtension」を使用すると宣言しています。
4.コントローラ拡張にはSaveメソッドを定義していないので、ここで呼び出されるSaveメソッドは標準コントローラを使用します。

 

IT

Posted by arkgame