|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjp.co.fujitsu.reffi.client.nexaweb.model.BaseModel
jp.co.fujitsu.reffi.client.nexaweb.model.XalReturnPossibilityModel
jp.co.fujitsu.reffi.client.nexaweb.model.HTTPRequestCore
public class HTTPRequestCore
[概 要]
同期、非同期HTTPリクエストを送信、レスポンス受信する為のモデルクラスです。[詳 細]
[備 考]
使用例) ・同期通信でリモートサーバからxalファイルを受信、画面にレンダリングする TODO javadoc修正
public class OpenChatAction extends BaseAction {
@Override
protected void reserveModels(List> models) {
// HTTP通信モデルを実行予約
models.add(HTTPRequestCore.class);
}
@Override
public void nextModel(int index, Model prev, Model next) throws Exception{
switch(index){
case 0:
// サーバロジックの指定方法は任意(strutsでも自作F/Wでも可)
((HTTPRequestCore)next).setRequestUrl("webcontroller");
((HTTPRequestCore)next).addUrlParameters("forward.page", "/pages/chat.xal");
break;
}
}
}
・非同期通信でリモートサーバからシリアライズオブジェクトを受信、テーブルに受信データを埋め込む
public class InitializeTableWindowAction extends BaseAction {
@Override
protected void reserveModels(List> models) {
// HTTP通信モデルを実行予約
models.add(HTTPRequestCore.class);
}
@Override
public void nextModel(int index, Model prev, Model next) throws Exception {
switch(index) {
case 0:
// サーバロジックの指定方法は任意(strutsでも自作F/Wでも可)
((HTTPRequestCore)next).setRequestUrl("webcontroller");
((HTTPRequestCore)next).addUrlParameters("model.fqcn", "demo.server.model.FetchTableDataModel");
// 受信データを自動レンダリングさせない
((HTTPRequestCore)next).setRenderResponse(false);
// 通信は非同期を指定
((HTTPRequestCore)next).setAsync(true);
break;
}
}
@Override
public void successForward(int index, Model model, Object result) throws Exception {
// モデル結果オブジェクトをHttpResponse型にキャスト
HttpResponse response = (HttpResponse)result;
// HttpResponseからシリアライズされたTableDataリストを取得
List data = (List)getSerializedHttpResponseContent(response);
// 設定対象データソースオブジェクトを取得
ObjectDataSource objectDataSource = getObjectDataSource("tableDataSource");
// データソースにサーバモデル結果を設定
objectDataSource.setSource(data);
}
}
[環 境] JDK 6.0 Update 11
Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.
| コンストラクタの概要 | |
|---|---|
HTTPRequestCore()
[概 要] コンストラクタ [詳 細] [備 考] |
|
| メソッドの概要 | |
|---|---|
void |
addUrlParameters(String key,
String value)
[概 要] 「key=value」形式URLパラメータマップに要素を追加します。 |
protected void |
asyncRequest(HttpRequest httpRequest,
RequestService requestService)
[概 要] 非同期HTTPリクエストを送信します。 |
String |
getRequestMethod()
[概 要] HTTPリクエストメソッドを取得します。 |
String |
getRequestUrl()
[概 要] HTTPリクエストするURLを取得します。 |
Map<String,String> |
getUrlParameters()
[概 要] 「key=value」形式URLパラメータマップを取得します。 |
boolean |
isAsync()
[概 要] 非同期リクエスト送信フラグ取得 [詳 細] サーバへの通信を非同期で実行するフラグを取得します。 |
boolean |
isDynamicUrl()
[概 要] 動的URLフラグ取得 [詳 細] URLを動的に生成してサーバへ送信を行うフラグを取得します。 |
boolean |
isRenderResponse()
[概 要] HTTPレスポンスをUIにレンダリングするかどうかのフラグを取得します。 |
protected void |
mainproc()
[概 要] 主処理です。 |
void |
postRequest(String uri,
HttpResponse response)
[概 要] リクエスト送信後処理 [詳 細] リクエスト送信後の処理を行います。 |
void |
postRequestFailed(String uri,
NetServiceException e)
[概 要] リクエスト送信失敗後処理 [詳 細] リクエスト送信失敗の後処理を行います。 |
void |
removeUrlParameters(String key)
[概 要] 「key=value」形式URLパラメータマップから要素を削除します。 |
void |
requestCompleted(String uri,
HttpResponse response)
[概 要] リクエスト完了処理 [詳 細] リクエストが完了しレスポンスを受信した際の処理を行います。 |
void |
requestFailed(String uri,
NetServiceException e)
[概 要] リクエスト失敗処理 [詳 細] リクエスト送信が失敗した場合の処理を行います。 |
void |
setAsync(boolean async)
[概 要] 非同期リクエスト送信フラグ設定 [詳 細] [備 考] |
void |
setDynamicUrl(boolean dynamicUrl)
[概 要] 動的URLフラグ設定 [詳 細] URLを動的に生成してサーバへ送信を行うフラグを設定します。 |
void |
setRenderResponse(boolean renderResponse)
[概 要] HTTPレスポンスをUIにレンダリングするかどうかのフラグを設定します。 |
void |
setRequestMethod(String requestMethod)
[概 要] HTTPリクエストメソッドを設定します。 |
void |
setRequestUrl(String requestUrl)
[概 要] HTTPリクエストするURLを設定します。 |
void |
setUrlParameters(Map<String,String> urlParameters)
[概 要] 「key=value」形式URLパラメータマップを設定します。 |
protected void |
syncRequest(HttpRequest httpRequest,
RequestService requestService)
[概 要] 同期HTTPリクエストを送信します。 |
| クラス jp.co.fujitsu.reffi.client.nexaweb.model.XalReturnPossibilityModel から継承されたメソッド |
|---|
addIdentifierToWindows, getCommunicateId, getEventSourceWindow, setCommunicateId, setEventSourceWindow |
| クラス jp.co.fujitsu.reffi.client.nexaweb.model.BaseModel から継承されたメソッド |
|---|
addModelProcessListener, finalproc, fireModelFailure, fireModelFinished, fireModelSuccess, getController, getExecuteIndex, getListenerList, getParameterMapping, getResult, getSuccessCount, incrementSuccessCount, isSkip, postproc, preproc, removeModelProcessListener, run, setController, setExecuteIndex, setListenerList, setParameterMapping, setResult, setSkip, trap |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public HTTPRequestCore()
[概 要]
コンストラクタ[詳 細]
[備 考]
| メソッドの詳細 |
|---|
public String getRequestUrl()
[概 要]
HTTPリクエストするURLを取得します。[詳 細]
[備 考]
public void setRequestUrl(String requestUrl)
[概 要]
HTTPリクエストするURLを設定します。[詳 細]
[備 考]
requestUrl - リクエストURLpublic String getRequestMethod()
[概 要]
HTTPリクエストメソッドを取得します。[詳 細]
[備 考]
public void setRequestMethod(String requestMethod)
[概 要]
HTTPリクエストメソッドを設定します。[詳 細]
[備 考]
requestMethod - リクエストメソッドpublic Map<String,String> getUrlParameters()
[概 要]
「key=value」形式URLパラメータマップを取得します。[詳 細]
[備 考]
public void setUrlParameters(Map<String,String> urlParameters)
[概 要]
「key=value」形式URLパラメータマップを設定します。[詳 細]
[備 考]
urlParameters - URLパラメータマップ
public void addUrlParameters(String key,
String value)
[概 要]
「key=value」形式URLパラメータマップに要素を追加します。[詳 細]
[備 考]
key - パラメータキーvalue - パラメータ値public void removeUrlParameters(String key)
[概 要]
「key=value」形式URLパラメータマップから要素を削除します。[詳 細]
[備 考]
key - パラメータキーpublic boolean isRenderResponse()
[概 要]
HTTPレスポンスをUIにレンダリングするかどうかのフラグを取得します。[詳 細]
[備 考]
public void setRenderResponse(boolean renderResponse)
[概 要]
HTTPレスポンスをUIにレンダリングするかどうかのフラグを設定します。[詳 細]
[備 考]
renderResponse - レンダリングする場合はtrue、それ以外はfalsepublic boolean isAsync()
[概 要]
非同期リクエスト送信フラグ取得[詳 細]
サーバへの通信を非同期で実行するフラグを取得します。[備 考]
public void setAsync(boolean async)
[概 要]
非同期リクエスト送信フラグ設定[詳 細]
[備 考]
async - 非同期実行ならtrue、それ以外はfalsepublic boolean isDynamicUrl()
[概 要]
動的URLフラグ取得[詳 細]
URLを動的に生成してサーバへ送信を行うフラグを取得します。[備 考]
本フラグがtrueの場合、あらかじめサーバ側のweb.xmlでDynamicUrlFilterが 定義されている必要があります。
public void setDynamicUrl(boolean dynamicUrl)
[概 要]
動的URLフラグ設定[詳 細]
URLを動的に生成してサーバへ送信を行うフラグを設定します。[備 考]
本フラグがtrueの場合、あらかじめサーバ側のweb.xmlでDynamicUrlFilterが 定義されている必要があります。
dynamicUrl - 動的URLを生成する場合はtrue、それ以外はfalse
protected void mainproc()
throws Exception
XalReturnPossibilityModel の記述:[概 要]
主処理です。[詳 細]
アクションから譲渡された、イベント発生元ウィンドウレベルエレメントを、 フィールドに保存します。[備 考]
保存されたイベント発生元ウィンドウレベルエレメントのid属性値が、 新たに取得したウィンドウレベルエレメントのparentId属性値として設定されます。
XalReturnPossibilityModel 内の mainprocException - オーバーライド先で発生する可能性が有る例外
protected void syncRequest(HttpRequest httpRequest,
RequestService requestService)
throws Exception
[概 要]
同期HTTPリクエストを送信します。[詳 細]
isRenderingResponse()の返却値を判定して、以下の処理を行います。 【trueの場合】 response = requestService.retrieveAndProcess(httpRequest); 【falseの場合】 response = requestService.retrieve(httpRequest); trueの場合はレスポンス返却時点で画面に反映されます。 この場合、HTTPレスポンスのコンテントはXALデータである必要が有ります。 isRenderingResponse()の結果如何に関わらず、受信したデータはrequestCompleted メソッドに譲渡されます。[備 考]
isRenderingResponse() == true時、レスポンスがXALデータで無かった場合は 例外が発生します。 シリアライズオブジェクトをレスポンスデータとして受信する場合は setRenderingResponse(false)を設定しておく必要があります。
httpRequest - HTTPリクエストrequestService - リクエストサービス
Exception - リクエスト送信例外
protected void asyncRequest(HttpRequest httpRequest,
RequestService requestService)
throws Exception
[概 要]
非同期HTTPリクエストを送信します。[詳 細]
isRenderingResponse()の返却値を判定して、以下の処理を行います。 【trueの場合】 requestService.retrieveAndProcessAsynchronously(httpRequest,this); 【falseの場合】 requestService.retrieveAsynchronously(httpRequest, this); trueの場合はレスポンス返却時点で画面に反映されます。 この場合、HTTPレスポンスのコンテントはXALデータである必要が有ります。 レスポンス受信成功はthis.requestCompletedが、失敗時はthis.requestFailed が、NetServiceListenerによってコールバックされます。[備 考]
isRenderingResponse() == true時、レスポンスがXALデータで無かった場合は 例外が発生します。 シリアライズオブジェクトをレスポンスデータとして受信する場合は setRenderingResponse(false)を設定しておく必要があります。
httpRequest - HTTPリクエストrequestService - リクエストサービス
Exception - リクエスト送信例外
public final void requestCompleted(String uri,
HttpResponse response)
[概 要]
リクエスト完了処理[詳 細]
リクエストが完了しレスポンスを受信した際の処理を行います。[備 考]
NetServiceListener 内の requestCompleted
public final void requestFailed(String uri,
NetServiceException e)
[概 要]
リクエスト失敗処理[詳 細]
リクエスト送信が失敗した場合の処理を行います。[備 考]
NetServiceListener 内の requestFailed
public void postRequest(String uri,
HttpResponse response)
[概 要]
リクエスト送信後処理[詳 細]
リクエスト送信後の処理を行います。[備 考]
本メソッドは、本クラスを継承するモデルが送信後に何かしらの処理を 行いたい場合のみ実装されます。
uri - リクエストURIresponse - HTTPレスポンス
public void postRequestFailed(String uri,
NetServiceException e)
[概 要]
リクエスト送信失敗後処理[詳 細]
リクエスト送信失敗の後処理を行います。[備 考]
本メソッドは、本クラスを継承するモデルが送信失敗後に何かしらの処理を 行いたい場合のみ実装されます。
uri - リクエストURIe - リクエスト送信例外
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||