Apex コントローラ拡張(extensions)の作成方法のサンプル
環境
Salesforce
構文
public コントローラ拡張クラス名(ApexPages.StandardController stdController) {処理コード}
コントローラ拡張は、ApexPages.StandardController または CustomControllerName 型の単一の引数を取るコンストラクタが含まれる Apex クラスです。CustomControllerName は、拡張するカスタムコントローラの名前です。
1.コントローラ拡張クラスの定義
サンプルコード
public class myControllerExtension { private final Account acct; // 拡張コンストラクターはプライベートメンバーを初期化します // 標準の getRecord メソッドを使用して変数 acct // コントローラー public myControllerExtension(ApexPages.StandardController stdController) { this.acct = (Account)stdController.getRecord(); } public String getGetinfo() { return 'Welcome ' + acct.name + ' (' + acct.id + ')'; } }
2.コントローラ拡張をページ内容で使用方法
構文1
ページマークアップで {! } 表記を使用して、コントローラ拡張メソッドを参照できます。
ページ上部の {!getinfo} 式は、コントローラ拡張の getGetinfo メソッドを参照しています。
構文2
apex:inputField value="{!account.name}"
取引先の名前を取得します
apex:commandButton value-"Save" action="{!save}"
action 属性のある標準 Account の save メソッドを参照します。
サンプルコード
<apex:page standardController="Account" extensions="myControllerExtension"> {!getinfo} <p/> <apex:form> <apex:inputField value="{!account.name}"/> <p/> <apex:commandButton value="Save" action="{!save}"/> </apex:form> </apex:page>