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

PageReference クラス

PageReference は、ページのインスタンス化への参照です。多数の属性の 1 つである PageReferences は URL、一連のクエリパラメータ名および値で構成されます。

名前空間

System

PageReference オブジェクトは次の目的で使用します。
  • ページのクエリ文字列パラメータおよび値を表示または設定する
  • ユーザを action メソッドの結果として異なるページにナビゲートする

インスタンス化

カスタムコントローラまたはコントローラ拡張では、次のいずれかの方法で、PageReference を参照またはインスタンス化できます。
  • 組織ですでに保存している Visualforce ページの PageReference を参照します。このプラットフォームはこのようにページを参照することで、コントローラまたはコントローラ拡張が指定されたページの有無に依存することを認識し、コントローラまたは拡張が存在する間はページが削除されないようにします。

  • Force.com プラットフォームでホストされる任意のページに PageReference を作成します。たとえば、'partialURL''/apex/HelloWorld' に設定すると、http://mySalesforceInstance/apex/HelloWorld にある Visualforce ページを参照します。同様に、'partialURL''/' + 'recordID' に設定すると、指定したレコードの詳細ページを参照します。

    この構文は、PageReference はコンパイル時ではなく、実行時に構成されるため、Page.existingPageName のページ以外の Visualforce ページの参照にはお推めしません。実行時の参照は、参照整合性システムには使用できません。したがって、プラットフォームはこのコントローラまたはコントローラ拡張機能が指定されたページの有無に依存することを認識しないため、ユーザによるページの削除を防ぐためにエラーメッセージを表示しません。

  • 外部 URL の PageReference を作成します。次に例を示します。

currentPage ApexPages メソッドを使用して、現在のページの PageReference オブジェクトをインスタンス化することもできます。次に例を示します。

要求ヘッダー

次の表に、要求時に設定される一部のヘッダーを示します。

ヘッダー 説明
Host 要求 URL で要求されるホスト名です。このヘッダーは、常に Force.com サイト要求および「私のドメイン」要求に設定されます。また、HTTP/1.1 ではなく、HTTP/1.0 を使用する場合、その他の要求ではこのヘッダーは省略可能です。
Referer 現在の要求の URL に含まれるか、リンクされた URL です。このヘッダーは省略可能です。
User-Agent この要求を開始したプログラム (Web ブラウザなど) の名前、バージョン、拡張子のサポートです。このヘッダーは省略可能で、ほとんどのブラウザで別の値に上書きできます。そのため、信頼できるヘッダーではありません。
CipherSuite このヘッダーが存在し、空白以外の値である場合、要求には HTTPS が使用されています。それ以外の場合、要求には HTTP が使用されています。空白以外の値の内容はこの API で定義するものではなく、予告なく変更される場合があります。
X-Salesforce-SIP 要求の要求元 IP アドレスです。このヘッダーは、Salesforce のデータセンター外で開始された HTTP 要求と HTTPS 要求に常に設定されます。

要求が Content Delivery Network (CDN) またはプロキシサーバを通過する場合、要求元 IP アドレスは変更されて元のクライアント IP アドレスとは同じではなくなっている可能性があります。

メモ

X-Salesforce-Forwarded-To この要求を処理している Salesforce インスタンスの完全修飾ドメイン名です。このヘッダーは、Salesforce のデータセンター外で開始された HTTP 要求と HTTPS 要求に常に設定されます。

例: クエリ文字列パラメータの取得

次の例では、PageReference オブジェクトを使用して、現在の URL のクエリ文字列パラメータを取得する方法を示します。この例では、getAccount メソッドは id クエリ文字列パラメータを参照します。

次のページマークアップは、上記のコントローラから getAccount メソッドをコールします。

この例が正しく機能するためには、Visualforce ページを URL の有効な取引先レコードに関連付ける必要があります。たとえば、001D000000IRt53 が取引先 ID の場合、次の URL を使用します。

メモ

getAccount メソッドは、埋め込み SOQL クエリを使用して、ページの URL の id パラメータで指定した取引先を返します。id にアクセスするために、getAccount メソッドは次のように ApexPages 名前空間を使用します。

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

例: action メソッドの結果として新しいページに移動

カスタムコントローラまたはコントローラ拡張の action メソッドはいずれも、メソッドの結果として PageReference オブジェクトを返すことができます。PageReference の redirect 属性を true に設定すると、PageReference が指定した URL に移動します。

次の例では、save メソッドでこの移動を実装する方法を示します。この例では、save メソッドで返��れた PageReference によって、ユーザは新たに保存した取引先レコードの詳細ページに移動させます。

次のページマークアップは、上記のコントローラから save メソッドをコールします。ユーザが [保存] をクリックすると、新たに作成した取引先の詳細ページに移動します。