StandardControllerに拡張クラスを付ける

さっと作れそうだったのでメモ。

Visualforceページの standardcontroller にオブジェクトを指定を
ますは指定します。(今回はAccountを指定)

続けて、extensions に拡張したいクラスを指定します。
クラスのコンストラクタには、ApexPages.StandardController を引数で指定しておく。
これは、SFIDで指定されたレコードらしいです。
クラス内では getRecord() で取得できるみたいです。


Visualforceページ

<!-- SFIDを付けて表示する -->
<apex:page standardcontroller="Account" extensions="extensionsClass">
  <h1>{!exText}</h1>
   <apex:detail /> 
</apex:page>

Class

public class extensionsClass {
    
    public String exText {get; set;}
    
    private final Account acc;
    
    public extensionsClass(ApexPages.StandardController controller) {
        
        this.acc = (Account)controller.getRecord();

        exText = acc.Id + '(拡張で付与しています)';
        
    }
    
}

実行結果

.../apex/StandardControllerSample?id=0011000000w1Qdc
のようにSFIDパラメータを付けて表示
f:id:MNakayama:20160301122043j:plain
h1 に拡張クラスで作成したテキストが表示できました。

参考

https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/apex_pages_standardcontroller.htm