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>

 

IT

Posted by arkgame