カスタムコントローラの作成
カスタムコントローラは、引数をとらないデフォルトのコンストラクタを外部の最上位クラスに使用する Apex クラスです。パラメータを含むカスタムコントローラコンストラクタを作成することはできません。
カスタムコントローラを作成する手順は、次のとおりです。
- [設定] から、[クイック検索] ボックスに「Apex クラス」と入力し、[Apex クラス] を選択します。
- [新規] をクリックします。
- [バージョン設定] をクリックして、このクラスで使用する Apex および API のバージョンを指定します。組織が AppExchange から管理パッケージをインストールした場合、このクラスで使用する各管理パッケージのバージョンも指定できます。すべてのバージョンでデフォルト値を使用します。デフォルト値では、Apex および API についても、各管理パッケージについても、クラスを最新バージョンに関連付けます。最新バージョンのパッケージのものとは異なるコンポーネントや機能にアクセスする場合は、管理パッケージの古いバージョンを指定することもできます。特定の動作を維持するには、Apex および API の古いバージョンを指定できます。
- クラスエディタで、クラスの Apex コードを入力します。1 つのクラスの長さは、最大 1,000,000 文字です。@isTest を使用して定義したコメント、テストメソッド、またはクラスは含みません。
- [保存] をクリックし、変更を保存してクラスの詳細画面に戻るか、[適用] をクリックし、変更を保存してクラスの編集を続行します。作成した Apex クラスは、クラスに保存する前に正しくコンパイルする必要があります。
次のクラスは、カスタムコントローラの単純な例です。
次の Visualforce マークアップは、上記のカスタムコントローラをページ内で使用する方法を示します。
カスタムコントローラは、<apex:page> コンポーネントの controller 属性が使用されているため、ページと関連付けられています。
標準コントローラおよびコントローラ拡張と同様に、カスタムコントローラのメソッドは、関連付けられたページマークアップで {! } 表記を使って参照できます。上記の例では、getAccount メソッドは <apex:inputField> タグの value 属性で参照されており、<apex:commandButton> タグは、action 属性が設定された save メソッドを参照しています。
カスタムコントローラは、新しいレコードを作成する場合にも使用できます。次に例を示します。
次の Visualforce マークアップは、上記のカスタムコントローラをページ内で使用する方法を示します。