コントローラー拡張の作成
コントローラー拡張は、ApexPages.StandardController または CustomControllerName 型の単一の引数を取るコンストラクターが含まれる Apex クラスです。CustomControllerName は、拡張するカスタムコントローラーの名前です。
次のクラスは、コントローラー拡張の単純な例です。
次の Visualforce マークアップは、上記のコントローラー拡張をページ内で使用する方法を示します。
拡張は、<apex:page> コンポーネントの extensions 属性を使用してページに関連付けられます。
すべてのコントローラーメソッドと同様に、ページマークアップで {! } 表記を使用して、コントローラー拡張メソッドを参照できます。上記の例では、ページ上部の {!greeting} 式は、コントローラー拡張の getGreeting メソッドを参照しています。
この拡張は、Account 標準コントローラーと共に機能するため、標準コントローラーメソッドも利用できます。たとえば、<apex:inputField> タグの value 属性は、標準コントローラー機能を使用して取引先の名前を取得します。同様に、<apex:commandButton> タグは、action 属性のある標準 Account の save メソッドを参照します。
カンマ区切りのリストを使って、単一のページに対し複数のコントローラー拡張を定義できます。これにより、同じ名前のメソッドを上書きできます。たとえば、次のようなページがあったとします。
さらに、次の拡張があったとします。
<apex:outputText> コンポーネントの値は、foo-One として表示されます。上書きは、一番左の拡張、つまりカンマ区切りリストの最初の拡張で定義されているメソッドによって定義されます。したがって、ExtOne の getFoo メソッドは、ExtTwo のメソッドを上書きします。