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

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」を参照してください。