RemoteAction アノテーション
RemoteAction アノテーションでは、Visualforce で使用する Apex メソッドの JavaScript を介したコールのサポートが提供されます。このプロセスは、多くの場合 JavaScript Remoting と呼ばれます。
Apex クラスをカスタムコントローラまたはコントローラ拡張としてページに追加します。
次に、要求を JavaScript 関数コールとして追加します。簡単な JavaScript Remoting 呼び出しの形式は次のようになります。
1<apex:page controller="MyController" extension="MyExtension">1[namespace.]MyController.method(
2 [parameters...,]
3 callbackFunction,
4 [configuration]
5);| 要素 | 説明 |
|---|---|
| namespace | コントローラクラスの名前空間。名前空間要素が必要であるのは、組織に名前空間が定義されている場合、またはクラスがインストール済みパッケージに基づく場合です。 |
| MyController、MyExtension | Apex コントローラまたは拡張の名前。 |
| method | コールする Apex メソッドの名前。 |
| parameters | メソッドが取るパラメータのカンマ区切りのリスト。 |
| callbackFunction | コントローラからの応答を処理する JavaScript 関数���名前。匿名関数をインラインで宣言することもできます。callbackFunction ではメソッドコールの状況と結果をパラメータとして返します。 |
| configuration | リモートコールと応答の処理を設定します。Apex メソッドの応答をエスケープするかどうかを指定するなど、リモートコールの動作を変更する場合にこの要素を使用します。 |
コントローラでは、Apex のメソッド宣言は、次のように @RemoteAction アノテーションが先頭に付加されます。
Apex @RemoteAction メソッドは static で、かつ global または public のいずれかである必要があります。
1@RemoteAction
2global static String getItemId(String objectName) { ... }メソッドでは、引数として、Apex プリミティブ、コレクション、型指定された sObject、汎用 sObject、ユーザ定義 Apex クラスおよびインターフェースを取ることができます。汎用 sObject では、実際の型を特定するために ID または sobjectType の値を指定する必要があります。インターフェースパラメータでは、実際の型を特定するために apexType を指定する必要があります。メソッドでは Apex プリミティブ、sObject、コレクション、ユーザ定義された Apex クラスおよび列挙、SaveResult、UpsertResult、DeleteResult、SelectOption、または PageReference を返すことができます。
詳細は、『Visualforce 開発者ガイド』の「Apex コントローラの JavaScript Remoting」を参照してください。