Apex コントローラ拡張の使い方のサンプル

環境
Salesforce Apex

1.コントローラ拡張の定義

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class ttControllerExtension {
private final Account acct;
// 引数に標準コントローラを指定して、メソッドを使用してレコードIDを取得します。
public ttControllerExtension(ApexPages.StandardController stdController) {
this.acct = (Account)stdController.getRecord();
}
// カスタムアクションメソッドを定義します。
public String getGreeting() {
return 'test ' + acct.name + ' (' + acct.id + ')';
}
}
public class ttControllerExtension { private final Account acct; // 引数に標準コントローラを指定して、メソッドを使用してレコードIDを取得します。 public ttControllerExtension(ApexPages.StandardController stdController) { this.acct = (Account)stdController.getRecord(); } // カスタムアクションメソッドを定義します。 public String getGreeting() { return 'test ' + acct.name + ' (' + acct.id + ')'; } }
public class ttControllerExtension {
 
    private final Account acct;
    
    // 引数に標準コントローラを指定して、メソッドを使用してレコードIDを取得します。
    public ttControllerExtension(ApexPages.StandardController stdController) {
        this.acct = (Account)stdController.getRecord();
    }
    //  カスタムアクションメソッドを定義します。
    public String getGreeting() {
        return 'test ' + acct.name + ' (' + acct.id + ')';
    }
}

2. extensionsの属性にコントローラ拡張のApexクラスを指定します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<apex:page standardController="Account" extensions="ttControllerExtension">
{!greeting} <p/>
<apex:form>
<apex:inputField value="{!account.name}"/> <p/>
<!-- 標準コントローラのSaveメソッドを呼び出します。 -->
<apex:commandButton value="Save" action="{!save}"/>
</apex:form>
</apex:page>
<apex:page standardController="Account" extensions="ttControllerExtension"> {!greeting} <p/> <apex:form> <apex:inputField value="{!account.name}"/> <p/> <!-- 標準コントローラのSaveメソッドを呼び出します。 --> <apex:commandButton value="Save" action="{!save}"/> </apex:form> </apex:page>
<apex:page standardController="Account" extensions="ttControllerExtension">
    {!greeting} <p/>
    <apex:form>
        <apex:inputField value="{!account.name}"/> <p/>
        <!-- 標準コントローラのSaveメソッドを呼び出します。 -->
        <apex:commandButton value="Save" action="{!save}"/>
    </apex:form>
</apex:page>

説明
1.レコードIDを取得するためにStandardControllerをメソッドを使用しています。
2.カスタムアクションを作成しています。
3.標準コントローラを拡張するためにextensions属性で「ttControllerExtension」を使用すると宣言しています。
4.コントローラ拡張にはSaveメソッドを定義していないので、ここで呼び出されるSaveメソッドは標準コントローラを使用します。

 

IT

Posted by arkgame