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メソッドは標準コントローラを使用します。