jsspRpc
コンポーネント情報 | |
---|---|
モジュール | im_tags |
導入されたバージョン | 7.2以前 |
バージョン | 8.0.0 |
機能説明
<IMART type=“jsspRpc”>タグ。
このタグを利用すると、JavaScriptで記述されたサーバサイドのロジックを、クライアントサイドJavaScript(以下 CSJS)からシームレスに呼び出すことが可能となります。
属性 name には、CSJS内でサーバロジックを参照する際のオブジェクト名を指定します。
属性 page には、サーバロジックが記述されているページパス(拡張子なし)を指定します。
ここで指定するパスは、スクリプト開発モデルプログラムのソースディレクトリからの相対パス形式になります。 (デフォルトはWEB-INF/jssp/src からの相対パス形式になります)
サーバサイドの処理結果を非同期で受け取りたい場合は、属性 callback を指定します。
属性 callback には、CSJS関数名を指定します。 属性 callback が指定されている場合、サーバサイドの処理結果が 属性 callback で指定されたCSJS関数の引数に渡されます。
属性 onErrorCallback には、非同期通信時にエラーが発生した場合に呼び出される関数名を指定します。
属性 onErrorCallback で指定された関数の引数には、 JSSP-RPC 通信エラーオブジェクト が渡されます。
例:
<IMART type=“jsspRpc”>タグを利用したサーバサイドとの通信でエラーが発生した際、 そのエラー内容を格納したオブジェクトが伝達されます。
通信エラーが発生するのは以下の場合です。
同期通信の場合(=属性 callback が未指定の場合)、
通信エラーの内容が 例外として投げられます。 その為、同期通信を行う場合は、サーバサイドとの通信部分を try / catchで囲み、例外処理を記述してください。
投げられる例外オブジェクトの構成は、 JSSP-RPC 通信エラーオブジェクト と同一です。
非同期通信の場合(=属性 callback が指定されている場合)、
属性 onErrorCallback で指定された関数の引数に、 JSSP-RPC 通信エラーオブジェクト が渡されます。
属性 onErrorCallback が未指定の場合は、関数「ImJsspRpc.defaultOnErrorCallback() 」が実行されます。
JSSP-RPC 通信エラー オブジェクト
このタグを利用すると、JavaScriptで記述されたサーバサイドのロジックを、クライアントサイドJavaScript(以下 CSJS)からシームレスに呼び出すことが可能となります。
属性 name には、CSJS内でサーバロジックを参照する際のオブジェクト名を指定します。
属性 page には、サーバロジックが記述されているページパス(拡張子なし)を指定します。
ここで指定するパスは、スクリプト開発モデルプログラムのソースディレクトリからの相対パス形式になります。 (デフォルトはWEB-INF/jssp/src からの相対パス形式になります)
サーバサイドの処理結果を非同期で受け取りたい場合は、属性 callback を指定します。
属性 callback には、CSJS関数名を指定します。 属性 callback が指定されている場合、サーバサイドの処理結果が 属性 callback で指定されたCSJS関数の引数に渡されます。
属性 onErrorCallback には、非同期通信時にエラーが発生した場合に呼び出される関数名を指定します。
属性 onErrorCallback で指定された関数の引数には、 JSSP-RPC 通信エラーオブジェクト が渡されます。
例:
サーバサイドに「sample/test1.js」が存在し、 そのJSファイル内に「testFunction()」という関数が定義されている場合、以下を行うことによって、CSJSから上記関数を実行することができます。JSSP-RPC 通信エラーに関して
1. HTMLファイル内に<IMART type=“jsspRpc”>タグを以下のように記述します。<imart type=“jsspRpc” name=“serverLogic” page=“sample/test1” /">
2. CSJS内に以下を記述することで、サーバサイドのロジックを実行します。serverLogic.testFunction();
<IMART type=“jsspRpc”>タグを利用したサーバサイドとの通信でエラーが発生した際、 そのエラー内容を格納したオブジェクトが伝達されます。
通信エラーが発生するのは以下の場合です。
- レスポンスのHTTPステータスコードが「200」以外の場合(サーバサイドで実行時エラーが発生した場合を含みます)
- セッションタイムアウトが発生した場合
- Debug.browse()を実行した場合
同期通信の場合(=属性 callback が未指定の場合)、
通信エラーの内容が 例外として投げられます。 その為、同期通信を行う場合は、サーバサイドとの通信部分を try / catchで囲み、例外処理を記述してください。
投げられる例外オブジェクトの構成は、 JSSP-RPC 通信エラーオブジェクト と同一です。
非同期通信の場合(=属性 callback が指定されている場合)、
属性 onErrorCallback で指定された関数の引数に、 JSSP-RPC 通信エラーオブジェクト が渡されます。
属性 onErrorCallback が未指定の場合は、関数「ImJsspRpc.defaultOnErrorCallback() 」が実行されます。
JSSP-RPC 通信エラー オブジェクト
JSSP-RPC 通信エラーオブジェクト (Object) | httpStatus HTTPステータスコード (Number) |
code エラーコード (String) | |
message エラーメッセージ (String) | |
contentType レスポンスデータのコンテントタイプ (String) | |
data レスポンスデータ(JavaScriptオブジェクト、XMLオブジェクト、または、テキスト) |
- <IMART type=“jsspRpc”>タグでは、ブラウザとサーバ間の通信に XMLHttpRequest を利用しています。
- ブラウザとサーバ間通信のデータ形式は JSON です。
- 本タグで指定されたサーバロジック内では、以下の関数を利用することは出来ません。
- forward()
- redirect()
- secureRedirect()
- transmission()
- Debug.browse()
- HTTPResponse.sendMessageBody()
- HTTPResponse.sendMessageBodyString()
- HTTPResponse.sendMessageBodyFile()
- HTTPResponse.sendMessageBodyAsBinary()
- HTTPResponse.sendMessageBodyAsText()
- Module.download.send()
- Module.alert.back()
- Module.alert.link()
- Module.alert.reload()
- Module.alert.write()
- PageManager.redirect()
- <IMART type=“jsspRpc”>タグでは、 プレゼンテーションページ(=HTMLファイル)とファンクションコンテナ(=JSファイル)が対になっている必要はありません。任意のプレゼンテーションページ内で、任意のファンクションコンテナを呼び出すことが可能です。
属性一覧
注釈 | 属性名 | 型 | 説明 | 省略時の動作 |
---|---|---|---|---|
callback |
サーバサイドの処理結果を非同期で受け取る際のコールバック関数名(CSJS関数名) 省略した場合は、同期通信を行い、サーバサイドから結果が返却されるまで待ちます。 (エスケープ対象の属性です) |
- | ||
escapeJs |
JavaScriptエスケープの有効・無効を指定します。 「true」の場合、エスケープ対象の属性値が JavaScriptエスケープされて出力されます。 「false」の場合、エスケープ対象の属性値の JavaScriptエスケープ処理は行われません。 未指定の場合は「現在実行中の プレゼンテーション・ページ に紐づくescapeJsの値」に則ってJavaScriptエスケープ処理行われます。 詳しくは、「 エスケープ処理に関して 」を参照してください。 |
- | ||
escapeXml |
XMLエスケープの有効・無効を指定します。 「true」の場合、エスケープ対象の属性値が XMLエスケープされて出力されます。 「false」の場合、エスケープ対象の属性値の XMLエスケープ処理は行われません。 未指定の場合は、「現在実行中の プレゼンテーション・ページ に紐づくescapeXmlの値」に則ってXMLエスケープ処理行われます。 詳しくは、「 エスケープ処理に関して 」を参照してください。 |
- | ||
必須
|
name |
CSJS内でサーバロジックを参照する際のオブジェクト名 (エスケープ対象の属性です) |
- | |
onErrorCallback |
非同期通信時にエラーが発生した場合に呼び出される関数名(CSJS関数名) 省略した場合は、関数「ImJsspRpc#defaultOnErrorCallback() 」が実行されます。 (ImJsspRpc#defaultOnErrorCallback()は、csjs/im_jssp_rpc.js 内に定義されています) なお、同期通信の場合(=属性 callback が未指定の場合)は、 属性 onErrorCallback に指定された関数は無視されます。 (エスケープ対象の属性です) |
- | ||
必須
|
page |
サーバロジックが記述されているページパス(拡張子なし) | - |
内部タグ
なし