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

Newer Version Available

This content describes an older version of this product. View Latest

RemoteAction アノテーション

RemoteAction アノテーションでは、Visualforce で使用する Apex メソッドの JavaScript を介したコールのサポートが提供されます。このプロセスは、多くの場合 JavaScript Remoting と呼ばれます。

RemoteAction アノテーションのあるメソッドは、static、かつ global または public である必要があります。

メモ

Apex クラスをカスタムコントローラまたはコントローラ拡張としてページに追加します。
1<apex:page controller="MyController" extension="MyExtension">

コントローラまたはコントローラ拡張を追加すると、その Apex クラス内のすべての @RemoteAction メソッドにアクセス権が付与されます。この動作は、ページ内でそれらのメソッドが使用されていなくても行われます。ページを表示できるユーザであれば誰でも、すべての @RemoteAction メソッドを実行して、コントローラに擬似データや悪意のあるデータを提供できます。

警告

次に、要求を JavaScript 関数コールとして追加します。簡単な JavaScript Remoting 呼び出しの形式は次のようになります。
1[namespace.]MyController.method(
2    [parameters...,]
3    callbackFunction,
4    [configuration]
5);
表 1. リモート要求の要素
要素 説明
namespace コントローラクラスの名前空間。名前空間要素が必要であるのは、組織に名前空間が定義されている場合、またはクラスがインストール済みパッケージに基づく場合です。
MyControllerMyExtension Apex コントローラまたは拡張の名前。
method コールする Apex メソッドの名前。
parameters メソッドが取るパラメータのカンマ区切りのリスト。
callbackFunction コントローラからの応答を処理する JavaScript 関数の名前。匿名関数をインラインで宣言することもできます。callbackFunction ではメソッドコールの状況と結果をパラメータとして返します。
configuration リモートコールと応答の処理を設定します。Apex メソッドの応答をエスケープするかどうかを指定するなど、リモートコールの動作を変更する場合にこの要素を使用します。
コントローラでは、Apex のメソッド宣言は、次のように @RemoteAction アノテーションが先頭に付加されます。
1@RemoteAction
2global static String getItemId(String objectName) { ... }
Apex @RemoteAction メソッドは static で、かつ global または public のいずれかである必要があります。

メソッドでは、引数として、Apex プリミティブ、コレクション、型指定された sObject、汎用 sObject、ユーザ定義 Apex クラスおよびインターフェースを取ることができます。汎用 sObject では、実際の型を特定するために ID または sobjectType の値を指定する必要があります。インターフェースパラメータでは、実際の型を特定するために apexType を指定する必要があります。メソッドでは Apex プリミティブ、sObject、コレクション、ユーザ定義された Apex クラスおよび列挙、SaveResultUpsertResultDeleteResultSelectOption、または PageReference を返すことができます。

詳細は、『Visualforce 開発者ガイド』の「Apex コントローラの JavaScript Remoting」を参照してください。