こんにちは、アンダーソンです。
今回は標準コントローラとカスタムコントローラの違いについて解説していきます。
さらにコントローラ拡張についても解説していきます。
標準コントローラとは
標準コントローラとは、
標準アクションとデータアクセスを処理する高度な組み込みコントローラが含まれ、Lightning Platform データベースとの簡単かつ緊密なインテグレーションを提供します。これらの組み込みコントローラは、一般的に標準コントローラと呼ばれ、究極の標準コントローラとみなされることもあります。
標準コントローラの使用
標準と名前はついていますがカスタムオブジェクトをセットすることも可能です。
標準のレコード画面などに出ている、標準のボタンアクションや、レコードへのアクセスレベルが標準仕様のまま
表示させると言うような用件であれば標準コントローラを指定してVisualforceの作成をしていくのがいいと思います。
下記のように宣言します。
<apex:page standardController="Account">
ただこれだけです。
これで取引先の標準コントローラを使うことができます。
ページ読み込み時にURLの?Id=’001XXXXXXXXXXXX’
のIdを読み込みそのIdのレコードを表示させることができます。
また標準コントローラでは、アクセスできる範囲が決まっていますので注意が必要です。
指定したオブジェクトの上位、下位それぞれ1レベルまでのアクセスしかできませんのでその場合はカスタムコントローラを
使用しなければいけません。
カスタムコントローラとは
ではカスタムコントローラとはなんでしょう。
前述したように標準コントローラにはカスタムオブジェクトをセットすることもできます。
カスタムコントローラのカスタムはカスタムオブジェクトのことではないので注意しましょう。
カスタムコントローラには、Visualforce ページで使用できるカスタムロジックとデータ操作が含まれています。たとえば、表示項目のリストの取得、外部 Web サービスへのコールアウトの実行、データの検証と挿入などの操作をカスタムコントローラで実行でき、コントローラとして使用する Visualforce ページでこれらのすべての操作を行うことができます。
カスタムコントローラの作成および使用
<apex:page controller="CustomController">
標準コントローラは基本的な操作である、保存、編集などが基本ですが、そこにないボタンや動きを追加したりと言った際に
カスタムコントローラを使用して機能をユーザに提供します。
また前述のデータアクセスのレベルが2レベル以上になる際にはカスタムコントローラを使用します。
コントローラを拡張する
標準コントローラの機能は使うけど、ボタンを追加したいやボタンの機能を拡張したいと言った際には
標準コントローラを拡張します。
拡張の仕方は下記のようにPageブロック内で宣言します。
<apex:page standardController="Account" extensions='exController1,exController2'>
上記のように、拡張に使用するコントローラは複数でもOKです。
ただしそれぞれのコントローラ内で同じメソッド名を使用した場合には
はじめに記述されているコントローラが優先されるので注意しましょう。
状況に応じて使い分けていかないといけないですね。
コメント