Apex カスタムコントローラを使用するサンプル
環境
salesforce Apex
概要
カスタムコントローラはページの機能やロジックを全て実装できるコントローラです。
pageタグのcontroller属性でカスタムコントローラ名を指定することでページで使用できます。
<apex:page controller="ControllerName">
カスタムコントローラを使用する場合は、そのプログラムをシステムモードで実行します。
システムモードでの実行は項目レベルセキュリティやユーザ権限を考慮しないので、どのユーザでも実行することが可能になります。
1.カスタムコントローラの定義
サンプルコード
public class CustomController { private final Account account; // コンストラクタの定義 public CustomController() { account = [SELECT Id, Name, Phone, Type FROM Account WHERE Id = :ApexPages.currentPage().getParameters().get('id')]; } // 取引先レコードを取得する public Account getAccount() { return account; } // 保存メソッド public PageReference save() { update account; return null; } }
2.controller属性で呼び出すカスタムコントローラを指定しています
<apex:page controller="CustomController" tabStyle="Account"> <apex:form> <apex:pageBlock title="取引先名セクション"> 取引先名: <apex:inputField value="{!account.name}"/><br/> 電話番号: <apex:inputField value="{!account.phone}"/><br/> 種別: <apex:inputField value="{!account.type}"/><br/><br/> <!-- コントローラのsaveメソッドを呼び出します。 --> <apex:commandButton action="{!save}" value="save"/> </apex:pageBlock> </apex:form> </apex:page>