この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

getter メソッドの定義

Visualforce コントローラクラスに関する主要なタスクの 1 つに、データベースや他の計算値をページマークアップに表示する方法を開発者に提供するというタスクがあります。この種の機能を有効にするメソッドは getter メソッドと呼ばれ、一般的に getIdentifier と名づけられています。Identifier は、メソッドが返すレコードやプリミティブ値の名前です。

たとえば、次のコントローラには、コントローラの名前を文字列として返すための getter メソッドがあります。

1swfobject.registerObject("clippy.codeblock-0", "9");public class MyController {
2
3    public String getName() {
4        return 'MyController';
5    }
6
7}

getter メソッドの結果をページに表示するには、get プレフィックスを使用しない getter メソッドの名前を式で使用します。たとえば、getName メソッドの結果をページマークアップに表示するには、{!name} を使用します。

1swfobject.registerObject("clippy.codeblock-1", "9");<apex:page controller="MyController">
2    <apex:pageBlock title="Hello {!$User.FirstName}!">
3        This is your new page for the {!name} controller.
4    </apex:pageBlock>
5</apex:page>

標準取引先コントローラを使用した前述の例では、ページには、{!account.<fieldName>} 式を使用して (id クエリ文字列パラメータを使用した) URL に指定された、取引先レコードの値が表示されました。これは、標準取引先コントローラに、指定された取引先レコードを返す getAccount という getter メソッドが含まれるため実行できました。次のコードを使用して、カスタムコントローラでこの機能を模倣することができます。

1swfobject.registerObject("clippy.codeblock-2", "9");public class MyController {
2
3    public String getName() {
4        return 'MyController';
5    }
6
7    public Account getAccount() {
8        return [select id, name from Account 
9                 where id = :ApexPages.currentPage().getParameters().get('id')]; 
10    } 
11}
この例が正しく機能するためには、Visualforce ページを URL の有効な取引先レコードに関連付ける必要があります。たとえば、001D000000IRt53 が取引先 ID の場合、次の URL を使用します。
1https://Salesforce_instance/apex/MyFirstPage?id=001D000000IRt53

メモ

getAccount メソッドは、埋め込み SOQL クエリを使用して、ページの URL の id パラメータで指定した取引先を返します。id にアクセスするために、getAccount メソッドは次のように ApexPages 名前空間を使用します。
  • まず、currentPage メソッドが現在のページの PageReference インスタンスを返します。PageReference は、クエリ文字列パラメータなど、Visualforce ページへの参照を返します。
  • ページ参照に基づいて、getParameters メソッドを使用して、指定されたクエリ文字列パラメータの名前と値の対応付けを返します。
  • 次に、id ��指定する get メソッドのコールにより、id パラメータ自体の値を返します。

MyController コントローラを使用するページは、{!account.name} または {!account.id} 式を使用して、それぞれ name または id 項目のいずれかを表示できます。コントローラの SOQL クエリによって返される項目はこれらの項目のみであるため、ページではこれらの項目のみを使用することができます。

標準取引先コントローラをさらに緻密に模倣するには、<apex:page> タグに tabStyle 属性を追加して他の取引先ページと同じスタイルをページに適用できます。ページのマークアップは、次のようになります。

1swfobject.registerObject("clippy.codeblock-4", "9");<apex:page controller="MyController" tabStyle="Account">
2    <apex:pageBlock title="Hello {!$User.FirstName}!">
3        This is your new page for the {!name} controller. <br/>
4        You are viewing the {!account.name} account.
5    </apex:pageBlock>
6</apex:page>
カスタムコントローラを使用してページで値を表示する Visualforce ページエディタ。コードにカスタムコントローラが表示されます。