この文章は 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」を参照してください。