com.smartgwt.client.rpc
Class RPCRequest

java.lang.Object
  extended by com.smartgwt.client.core.JsObject
      extended by com.smartgwt.client.core.DataClass
          extended by com.smartgwt.client.rpc.RPCRequest
Direct Known Subclasses:
DSRequest

public class RPCRequest
extends DataClass

Encapsulates a client/server RPC request. You'll need to provide an instance of this class (or a constructor for it) to the com.smartgwt.client.rpc.RPCManager#sendRequest method. If you use the com.smartgwt.client.rpc.RPCManager#send method, an instance of RPCRequest will be created for you.


Field Summary
 
Fields inherited from class com.smartgwt.client.core.JsObject
jsObj
 
Constructor Summary
RPCRequest()
           
RPCRequest(com.google.gwt.core.client.JavaScriptObject jsObj)
           
 
Method Summary
static void create()
          RPCRequest shouldn't be created directly.
 java.lang.String getActionURL()
          Overrides RPCManager.actionURL for this request only.
 java.lang.Boolean getBypassCache()
          For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser thinks it has a current cached response.
 java.lang.String getCallbackParam()
          For use only with the scriptInclude transport, this attribute specifies the name of the parameter from which the server expects to read the name of the JavaScript callback function.
 java.lang.Boolean getContainsCredentials()
          For use during 'Relogin', this property marks this request an attempt to login, therefore a response containing the loginRequiredMarker is a normal condition and should result in the status code RPCResponse.STATUS_LOGIN_INCORRECT rather than a call to com.smartgwt.client.rpc.RPCManager#loginRequired.
 java.lang.String getContentType()
          Valid with the xmlHttpRequest transport only and only when httpMethod is set to "POST".
 com.google.gwt.core.client.JavaScriptObject getData()
           
 java.lang.String getDataAsString()
           
 java.lang.Boolean getEvalResult()
          This works similarly to serverOutputAsString except the resulting String is automatically evaluated as JavaScript.
 java.util.Map getHttpHeaders()
          HTTP headers to send, as a mapping Header name -> Header value, eg { "Content-Type" : "text/xml" }
 java.lang.String getHttpMethod()
          Selects the HTTP method that will be used for the request.
 java.lang.Boolean getIgnoreTimeout()
          When set to true, no reply is expected from the server.
 java.lang.Boolean getOmitNullMapValuesInResponse()
          If enabled, the server omits any key/value pairs in map that have null values from the response.
static RPCRequest getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)
           
 java.lang.String getPrompt()
          Overrides RPCManager.defaultPrompt for this request only.
 java.lang.String getPromptCursor()
          Controls the cursor shown when com.smartgwt.client.rpc.RPCManager#promptStyle is set to "cursor" for this request only.
 PromptStyle getPromptStyle()
          Controls the prompt style for this request only.
 java.lang.Boolean getSendNoQueue()
          When set to true, this request is sent to the server immediately, bypassing any current queue.
 java.lang.Boolean getServerOutputAsString()
          Setting this flag makes the body of the HTTP response available as a String in the callback as data.
 java.lang.Boolean getShowPrompt()
          Overrides RPCManager.showPrompt for this request only.
 int getTimeout()
          Overrides RPCManager.defaultTimeout for this request only.
 RPCTransport getTransport()
          Selects the transport used for this RPCRequest.
 java.lang.Boolean getUseSimpleHttp()
          When set to true, assume the request is not going to the SmartGWT server, and hence send a simple HTTP request that does not use SmartGWT-specific request encoding.
 java.lang.Boolean getWillHandleError()
          With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and rpcRequest.callback is never invoked.
 void setActionURL(java.lang.String actionURL)
          Overrides RPCManager.actionURL for this request only.
 void setBypassCache(java.lang.Boolean bypassCache)
          For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser thinks it has a current cached response.
 void setCallbackParam(java.lang.String callbackParam)
          For use only with the scriptInclude transport, this attribute specifies the name of the parameter from which the server expects to read the name of the JavaScript callback function.
 void setContainsCredentials(java.lang.Boolean containsCredentials)
          For use during 'Relogin', this property marks this request an attempt to login, therefore a response containing the loginRequiredMarker is a normal condition and should result in the status code RPCResponse.STATUS_LOGIN_INCORRECT rather than a call to com.smartgwt.client.rpc.RPCManager#loginRequired.
 void setContentType(java.lang.String contentType)
          Valid with the xmlHttpRequest transport only and only when httpMethod is set to "POST".
 void setData(com.google.gwt.core.client.JavaScriptObject data)
          This attribute specifies the payload of the RPCRequest.
 void setData(java.lang.String data)
          This attribute specifies the payload of the RPCRequest.
 void setEvalResult(java.lang.Boolean evalResult)
          This works similarly to serverOutputAsString except the resulting String is automatically evaluated as JavaScript.
 void setEvalVars(java.util.Map evalVars)
          If you've set setEvalResult(Boolean) : true, then the property values of this object will be available in the evaluation scope of the result under the variable names specified by the property names.
 void setHttpHeaders(java.util.Map httpHeaders)
          HTTP headers to send, as a mapping Header name -> Header value, eg { "Content-Type" : "text/xml" }
 void setHttpMethod(java.lang.String httpMethod)
          Selects the HTTP method that will be used for the request.
 void setIgnoreTimeout(java.lang.Boolean ignoreTimeout)
          When set to true, no reply is expected from the server.
 void setOmitNullMapValuesInResponse(java.lang.Boolean omitNullMapValuesInResponse)
          If enabled, the server omits any key/value pairs in map that have null values from the response.
 void setParams(java.util.Map params)
          Values to be sent as simple HTTP params, as a JavaScript Object where each property/value pair will become an HTTP parameter name and value.
 void setPrompt(java.lang.String prompt)
          Overrides RPCManager.defaultPrompt for this request only.
 void setPromptCursor(java.lang.String promptCursor)
          Controls the cursor shown when com.smartgwt.client.rpc.RPCManager#promptStyle is set to "cursor" for this request only.
 void setPromptStyle(PromptStyle promptStyle)
          Controls the prompt style for this request only.
 void setSendNoQueue(java.lang.Boolean sendNoQueue)
          When set to true, this request is sent to the server immediately, bypassing any current queue.
 void setServerOutputAsString(java.lang.Boolean serverOutputAsString)
          Setting this flag makes the body of the HTTP response available as a String in the callback as data.
 void setShowPrompt(java.lang.Boolean showPrompt)
          Overrides RPCManager.showPrompt for this request only.
 void setTimeout(int timeout)
          Overrides RPCManager.defaultTimeout for this request only.
 void setTransport(RPCTransport transport)
          Selects the transport used for this RPCRequest.
 void setUseSimpleHttp(java.lang.Boolean useSimpleHttp)
          When set to true, assume the request is not going to the SmartGWT server, and hence send a simple HTTP request that does not use SmartGWT-specific request encoding.
 void setWillHandleError(java.lang.Boolean willHandleError)
          With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and rpcRequest.callback is never invoked.
 
Methods inherited from class com.smartgwt.client.core.DataClass
doAddHandler, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsFloat, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsObject, getAttributeAsString, getAttributeAsStringArray, getAttributes, getHandlerCount, getJsObj, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute
 
Methods inherited from class com.smartgwt.client.core.JsObject
isCreated, setJsObj
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RPCRequest

public RPCRequest()

RPCRequest

public RPCRequest(com.google.gwt.core.client.JavaScriptObject jsObj)
Method Detail

getOrCreateRef

public static RPCRequest getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)

setActionURL

public void setActionURL(java.lang.String actionURL)
Overrides RPCManager.actionURL for this request only. If you're using queuing, note that queues as per-URL - in other words all RPCRequests in a queue must go to a single URL. If you attempt to send a request with an actionURL that is different from those already in the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.

Parameters:
actionURL - actionURL Default value is RPCManager.actionURL

getActionURL

public java.lang.String getActionURL()
Overrides RPCManager.actionURL for this request only. If you're using queuing, note that queues as per-URL - in other words all RPCRequests in a queue must go to a single URL. If you attempt to send a request with an actionURL that is different from those already in the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.

Returns:
String

setPromptStyle

public void setPromptStyle(PromptStyle promptStyle)
Controls the prompt style for this request only. Defaults to com.smartgwt.client.rpc.RPCManager#promptStyle.

Parameters:
promptStyle - promptStyle Default value is RPCManager.promptStyle

getPromptStyle

public PromptStyle getPromptStyle()
Controls the prompt style for this request only. Defaults to com.smartgwt.client.rpc.RPCManager#promptStyle.

Returns:
PromptStyle

setPromptCursor

public void setPromptCursor(java.lang.String promptCursor)
Controls the cursor shown when com.smartgwt.client.rpc.RPCManager#promptStyle is set to "cursor" for this request only. Defaults to com.smartgwt.client.rpc.RPCManager#promptCursor.

In Safari, IE 5.5 and Firefox 1.0 the default value is "wait", on all other platforms it is "progress". The reason for this split is that the above-mentioned browsers do not support CSS2.1 - which is required for the "progress" cursor type.

Parameters:
promptCursor - promptCursor Default value is browser-dependent

getPromptCursor

public java.lang.String getPromptCursor()
Controls the cursor shown when com.smartgwt.client.rpc.RPCManager#promptStyle is set to "cursor" for this request only. Defaults to com.smartgwt.client.rpc.RPCManager#promptCursor.

In Safari, IE 5.5 and Firefox 1.0 the default value is "wait", on all other platforms it is "progress". The reason for this split is that the above-mentioned browsers do not support CSS2.1 - which is required for the "progress" cursor type.

Returns:
String

setPrompt

public void setPrompt(java.lang.String prompt)
Overrides RPCManager.defaultPrompt for this request only. If you're using queuing, note that the prompt string from the first request in the queue is the one that is shown to the user.

Parameters:
prompt - prompt Default value is RPCManager.defaultPrompt

getPrompt

public java.lang.String getPrompt()
Overrides RPCManager.defaultPrompt for this request only. If you're using queuing, note that the prompt string from the first request in the queue is the one that is shown to the user.

Returns:
String

setShowPrompt

public void setShowPrompt(java.lang.Boolean showPrompt)
Overrides RPCManager.showPrompt for this request only. If you're using queuing, note that if any of the requests in the queue specify showPrompt:true, then a prompt will be shown for the entire queue with the prompt text of the first request in the queue to specify a custom prompt if promptStyle is set to "dialog". If promptStyle is set to "cursor" for the request that specified showPrompt: true, then the entire queue uses the "cursor" style for the prompt.

Parameters:
showPrompt - showPrompt Default value is RPCManager.showPrompt

getShowPrompt

public java.lang.Boolean getShowPrompt()
Overrides RPCManager.showPrompt for this request only. If you're using queuing, note that if any of the requests in the queue specify showPrompt:true, then a prompt will be shown for the entire queue with the prompt text of the first request in the queue to specify a custom prompt if promptStyle is set to "dialog". If promptStyle is set to "cursor" for the request that specified showPrompt: true, then the entire queue uses the "cursor" style for the prompt.

Returns:
Boolean

setWillHandleError

public void setWillHandleError(java.lang.Boolean willHandleError)
With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and rpcRequest.callback is never invoked.

Setting willHandleError:true means that your rpcRequest.callback will receive rpcResponses that have an error status and must handle them.

See also the error handling section in the RPCManager docs.

Parameters:
willHandleError - willHandleError Default value is false

getWillHandleError

public java.lang.Boolean getWillHandleError()
With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and rpcRequest.callback is never invoked.

Setting willHandleError:true means that your rpcRequest.callback will receive rpcResponses that have an error status and must handle them.

See also the error handling section in the RPCManager docs.

Returns:
Boolean

setTimeout

public void setTimeout(int timeout)
Overrides RPCManager.defaultTimeout for this request only. If you're using queuing, note that the timeout setting derived from the last request in the queue is used for the entire queue. If you want to override the timeout for the queue, make sure to set your override at least on the last request in the queue.

Note : This is an advanced setting

Parameters:
timeout - timeout Default value is RPCManager.defaultTimeout

getTimeout

public int getTimeout()
Overrides RPCManager.defaultTimeout for this request only. If you're using queuing, note that the timeout setting derived from the last request in the queue is used for the entire queue. If you want to override the timeout for the queue, make sure to set your override at least on the last request in the queue.

Returns:
int

setEvalResult

public void setEvalResult(java.lang.Boolean evalResult)
This works similarly to serverOutputAsString except the resulting String is automatically evaluated as JavaScript. The result of the evaluation is then passed to any specified callback as data.

This feature can be used to dynamically load new application modules into a running application. An RPCRequest with evalResult enabled can be used to fetch a static .js file or JavaScript dynamically generated by the server. The returned JavaScript can contain anything that a JavaScript file loaded at init time can contain, including new views and new SmartGWT class definitions.

Example usage with com.smartgwt.client.rpc.RPCManager#sendRequest:

 isc.RPCManager.sendRequest({
     evalResult:true,
     actionURL:"js/loadLabel.js",
     evalVars:{var1:"A Value"}
 });
 
This call would execute the code from loadLabel.js, and make the variable var1 available to that code. Therefore if the .js file contained this code:
 isc.Label.create({
     contents:var1
 })
 
A label would be created with contents set to the value of var1 - the string "A Value".

This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See PlatformDependencies for more information.

Note : This is an advanced setting

Parameters:
evalResult - evalResult Default value is false

getEvalResult

public java.lang.Boolean getEvalResult()
This works similarly to serverOutputAsString except the resulting String is automatically evaluated as JavaScript. The result of the evaluation is then passed to any specified callback as data.

This feature can be used to dynamically load new application modules into a running application. An RPCRequest with evalResult enabled can be used to fetch a static .js file or JavaScript dynamically generated by the server. The returned JavaScript can contain anything that a JavaScript file loaded at init time can contain, including new views and new SmartGWT class definitions.

Example usage with com.smartgwt.client.rpc.RPCManager#sendRequest:

 isc.RPCManager.sendRequest({
     evalResult:true,
     actionURL:"js/loadLabel.js",
     evalVars:{var1:"A Value"}
 });
 
This call would execute the code from loadLabel.js, and make the variable var1 available to that code. Therefore if the .js file contained this code:
 isc.Label.create({
     contents:var1
 })
 
A label would be created with contents set to the value of var1 - the string "A Value".

This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See PlatformDependencies for more information.

Returns:
Boolean

setCallbackParam

public void setCallbackParam(java.lang.String callbackParam)
For use only with the scriptInclude transport, this attribute specifies the name of the parameter from which the server expects to read the name of the JavaScript callback function.

SmartGWT will use the callback mechanism provided by the server, then call callback normally.

This attribute is ignored by all other transports.

Parameters:
callbackParam - callbackParam Default value is "callback"

getCallbackParam

public java.lang.String getCallbackParam()
For use only with the scriptInclude transport, this attribute specifies the name of the parameter from which the server expects to read the name of the JavaScript callback function.

SmartGWT will use the callback mechanism provided by the server, then call callback normally.

This attribute is ignored by all other transports.

Returns:
String

setServerOutputAsString

public void setServerOutputAsString(java.lang.Boolean serverOutputAsString)
Setting this flag makes the body of the HTTP response available as a String in the callback as data. This is typically only useful if you are sending a request that will not be received by the SmartGWT Java Server, however in that case, set useSimpleHttp:true instead, which implies serverOutputAsString:true.

serverOutputAsString:true allows you to, for example, load the contents of static files off your webserver into a string for processing on the client with no server support. The actionURL must be in the same domain as the current page for this to work.

This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See PlatformDependencies for more information.

Generally this API is used for either 'non-Java backends' or for advanced usage such as content that requires processing before it can be used in SmartGWT components (such as client-side web scraping). Note that SmartGWT provides higher-level APIs for loading common types of data, see eg HTMLFlow for HTML content, ViewLoader for loading SmartGWT components, com.smartgwt.client.data.XMLTools#loadXML for loading XML, evalResult for loading JSON, and DataSource for loading structured data in various formats.

Note : This is an advanced setting

Parameters:
serverOutputAsString - serverOutputAsString Default value is false

getServerOutputAsString

public java.lang.Boolean getServerOutputAsString()
Setting this flag makes the body of the HTTP response available as a String in the callback as data. This is typically only useful if you are sending a request that will not be received by the SmartGWT Java Server, however in that case, set useSimpleHttp:true instead, which implies serverOutputAsString:true.

serverOutputAsString:true allows you to, for example, load the contents of static files off your webserver into a string for processing on the client with no server support. The actionURL must be in the same domain as the current page for this to work.

This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported browsers. See PlatformDependencies for more information.

Generally this API is used for either 'non-Java backends' or for advanced usage such as content that requires processing before it can be used in SmartGWT components (such as client-side web scraping). Note that SmartGWT provides higher-level APIs for loading common types of data, see eg HTMLFlow for HTML content, ViewLoader for loading SmartGWT components, com.smartgwt.client.data.XMLTools#loadXML for loading XML, evalResult for loading JSON, and DataSource for loading structured data in various formats.

Returns:
Boolean

setTransport

public void setTransport(RPCTransport transport)
Selects the transport used for this RPCRequest. If unset, the value of com.smartgwt.client.rpc.RPCManager#defaultTransport will be used.

If you're using queueing, note that all requests in the queue must use the same transport. If you attempt to send a request via a different transport than those that are currently on the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.

If you specify an unknown transport, an error will be logged to the DeveloperConsole and com.smartgwt.client.rpc.RPCManager#defaultTransport will be used instead.

If you specify the xmlHttpRequest transport and it is not available, a warning will be logged to the Developer Console and the RPCManager will attempt to use the hiddenFrame transport instead for this request. Note that some features like serverOutputAsString requre the xmlHttpRequest transport and will not work if the xmlHttpRequest transport is unavailable (this can happen if the end user is using Internet Explorer and has disabled ActiveX). You can check whether or not the xmlHttpRequest transport is currently available by calling RPCManager.xmlHttpRequestAvailable().

Note : This is an advanced setting

Parameters:
transport - transport Default value is RPCManager.defaultTransport

getTransport

public RPCTransport getTransport()
Selects the transport used for this RPCRequest. If unset, the value of com.smartgwt.client.rpc.RPCManager#defaultTransport will be used.

If you're using queueing, note that all requests in the queue must use the same transport. If you attempt to send a request via a different transport than those that are currently on the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.

If you specify an unknown transport, an error will be logged to the DeveloperConsole and com.smartgwt.client.rpc.RPCManager#defaultTransport will be used instead.

If you specify the xmlHttpRequest transport and it is not available, a warning will be logged to the Developer Console and the RPCManager will attempt to use the hiddenFrame transport instead for this request. Note that some features like serverOutputAsString requre the xmlHttpRequest transport and will not work if the xmlHttpRequest transport is unavailable (this can happen if the end user is using Internet Explorer and has disabled ActiveX). You can check whether or not the xmlHttpRequest transport is currently available by calling RPCManager.xmlHttpRequestAvailable().

Returns:
RPCTransport

setHttpMethod

public void setHttpMethod(java.lang.String httpMethod)
Selects the HTTP method that will be used for the request. Typical values are "POST" and "GET".

The more obscure "PUT", "DELETE" and "HEAD" methods are also valid, however, none of these are supported by the Safari browser previous to version 3.0.

Parameters:
httpMethod - httpMethod Default value is "POST"

getHttpMethod

public java.lang.String getHttpMethod()
Selects the HTTP method that will be used for the request. Typical values are "POST" and "GET".

The more obscure "PUT", "DELETE" and "HEAD" methods are also valid, however, none of these are supported by the Safari browser previous to version 3.0.

Returns:
String

setContentType

public void setContentType(java.lang.String contentType)
Valid with the xmlHttpRequest transport only and only when httpMethod is set to "POST".

Parameters:
contentType - contentType Default value is "application/x-www-form-urlencoded"

getContentType

public java.lang.String getContentType()
Valid with the xmlHttpRequest transport only and only when httpMethod is set to "POST".

Returns:
String

setContainsCredentials

public void setContainsCredentials(java.lang.Boolean containsCredentials)
For use during 'Relogin', this property marks this request an attempt to login, therefore a response containing the loginRequiredMarker is a normal condition and should result in the status code RPCResponse.STATUS_LOGIN_INCORRECT rather than a call to com.smartgwt.client.rpc.RPCManager#loginRequired.

It is not required to set containsCredentials, however, it does typically simplify relogin logic by separating the handling of RPCs that are login attempts from RPCs that are not.

Note : This is an advanced setting

Parameters:
containsCredentials - containsCredentials Default value is false

getContainsCredentials

public java.lang.Boolean getContainsCredentials()
For use during 'Relogin', this property marks this request an attempt to login, therefore a response containing the loginRequiredMarker is a normal condition and should result in the status code RPCResponse.STATUS_LOGIN_INCORRECT rather than a call to com.smartgwt.client.rpc.RPCManager#loginRequired.

It is not required to set containsCredentials, however, it does typically simplify relogin logic by separating the handling of RPCs that are login attempts from RPCs that are not.

Returns:
Boolean

setIgnoreTimeout

public void setIgnoreTimeout(java.lang.Boolean ignoreTimeout)
When set to true, no reply is expected from the server. However, if a reply is received, it will be processed.

Note: setting this to true, forces sendNoQueue to true for this request.

Note : This is an advanced setting

Parameters:
ignoreTimeout - ignoreTimeout Default value is false

getIgnoreTimeout

public java.lang.Boolean getIgnoreTimeout()
When set to true, no reply is expected from the server. However, if a reply is received, it will be processed.

Note: setting this to true, forces sendNoQueue to true for this request.

Returns:
Boolean

setSendNoQueue

public void setSendNoQueue(java.lang.Boolean sendNoQueue)
When set to true, this request is sent to the server immediately, bypassing any current queue.

Note : This is an advanced setting

Parameters:
sendNoQueue - sendNoQueue Default value is false

getSendNoQueue

public java.lang.Boolean getSendNoQueue()
When set to true, this request is sent to the server immediately, bypassing any current queue.

Returns:
Boolean

setUseSimpleHttp

public void setUseSimpleHttp(java.lang.Boolean useSimpleHttp)
When set to true, assume the request is not going to the SmartGWT server, and hence send a simple HTTP request that does not use SmartGWT-specific request encoding.

Values specified in params are sent to to the server as HTTP request parameters. If httpMethod is "GET", parameters appear in the request URL, otherwise if httpMethod is "POST", parameters are encoded in the request body (exactly like an HTML form does). These parameters are then accessible via typical server-side APIs for retrieving HTTP parameters, eg, servletRequest.getParameter(paramName) in Java Servlets.

Note that if httpMethod method is POST and data is supplied, data is assumed to be a string to post as the HTTP request body, and params are sent as URL parameters instead. This usage is for sending custom request bodies such as the XML payloads used for SOAP. In this case, contentType is typically also set to indicate the content type of the request body.

Setting useSimpleHttp to true also automatically sets serverOutputAsString to true as well.

Note : This is an advanced setting

Parameters:
useSimpleHttp - useSimpleHttp Default value is false

getUseSimpleHttp

public java.lang.Boolean getUseSimpleHttp()
When set to true, assume the request is not going to the SmartGWT server, and hence send a simple HTTP request that does not use SmartGWT-specific request encoding.

Values specified in params are sent to to the server as HTTP request parameters. If httpMethod is "GET", parameters appear in the request URL, otherwise if httpMethod is "POST", parameters are encoded in the request body (exactly like an HTML form does). These parameters are then accessible via typical server-side APIs for retrieving HTTP parameters, eg, servletRequest.getParameter(paramName) in Java Servlets.

Note that if httpMethod method is POST and data is supplied, data is assumed to be a string to post as the HTTP request body, and params are sent as URL parameters instead. This usage is for sending custom request bodies such as the XML payloads used for SOAP. In this case, contentType is typically also set to indicate the content type of the request body.

Setting useSimpleHttp to true also automatically sets serverOutputAsString to true as well.

Returns:
Boolean

setBypassCache

public void setBypassCache(java.lang.Boolean bypassCache)
For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser thinks it has a current cached response.

Note : This is an advanced setting

Parameters:
bypassCache - bypassCache Default value is false

getBypassCache

public java.lang.Boolean getBypassCache()
For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser thinks it has a current cached response.

Returns:
Boolean

setOmitNullMapValuesInResponse

public void setOmitNullMapValuesInResponse(java.lang.Boolean omitNullMapValuesInResponse)
If enabled, the server omits any key/value pairs in map that have null values from the response. This can reduce the size of the response when many fields have null values.

To enable this globally for all responses you can set RPCManager.omitNullMapValuesInResponse in server.properties.

Note : This is an advanced setting

Parameters:
omitNullMapValuesInResponse - omitNullMapValuesInResponse Default value is false

getOmitNullMapValuesInResponse

public java.lang.Boolean getOmitNullMapValuesInResponse()
If enabled, the server omits any key/value pairs in map that have null values from the response. This can reduce the size of the response when many fields have null values.

To enable this globally for all responses you can set RPCManager.omitNullMapValuesInResponse in server.properties.

Returns:
Boolean

create

public static void create()
RPCRequest shouldn't be created directly. Instead, pass com.smartgwt.client..Properties to com.smartgwt.client.rpc.RPCManager#sendRequest and com.smartgwt.client.rpc.RPCManager#send.


setData

public void setData(com.google.gwt.core.client.JavaScriptObject data)
This attribute specifies the payload of the RPCRequest. When using the SmartGWT server, any JavaScript simple type or arbitrarily nested set of Objects and Arrays can be sent to server and automatically translated to Java Objects. Here are the mapping of JavaScript types to their corresponding server object types:

JS Type Java Type C# Type Perl Type
Object: {} Map IDictionary Associative Array: {}
Array: [] List IList Array: []
String String string string
Number Long|Double long|double string
Boolean Boolean bool string
Date java.util.Date DateTime string


Note that the order of keys/values in the Maps created on the server is not guaranteed because JavaScript Object literals do not guarantee order.

Server->client conversion follows the this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.

When not communicating with the SmartGWT server, rpcRequest.data becomes simple HTTP parameters or an HTTP request body - see useSimpleHttp for details.

Parameters:
data - data Default value is null

setData

public void setData(java.lang.String data)
This attribute specifies the payload of the RPCRequest. When using the SmartGWT server, any JavaScript simple type or arbitrarily nested set of Objects and Arrays can be sent to server and automatically translated to Java Objects. Here are the mapping of JavaScript types to their corresponding server object types:

JS Type Java Type C# Type Perl Type
Object: {} Map IDictionary Associative Array: {}
Array: [] List IList Array: []
String String string string
Number Long|Double long|double string
Boolean Boolean bool string
Date java.util.Date DateTime string


Note that the order of keys/values in the Maps created on the server is not guaranteed because JavaScript Object literals do not guarantee order.

Server->client conversion follows the this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.

When not communicating with the SmartGWT server, rpcRequest.data becomes simple HTTP parameters or an HTTP request body - see useSimpleHttp for details.

Parameters:
data - data Default value is null

getData

public com.google.gwt.core.client.JavaScriptObject getData()

getDataAsString

public java.lang.String getDataAsString()

setParams

public void setParams(java.util.Map params)
Values to be sent as simple HTTP params, as a JavaScript Object where each property/value pair will become an HTTP parameter name and value. These parameters are then accessible on the server, for example, using servletRequest.getParameter(paramName) in Java Servlets.

This API is primarily used in combination with useSimpleHttp.

When contacting the SmartGWT server, setting params is an opportunity to send additional data aside from the main data payload; this is useful for adding data to DataSource requests which will be kept separate from the automatically sent DataSource data.

Note that in contrast to data object, the data in rpcRequest.params is not serialized/deserialized by the SmartGWT server, and all values arrive on the server as String type (like HTTP parameters always do).

The params value can also be a componentID or component instance that provides a method getValues() that returns an Object literal. SmartGWT components DynamicForm, ValuesManager are two such classes. Lastly, you may specify the ID of a native form element (retreivable via getElementById()) and the params will be populated from there. If there is an error resolving your params directive, it will be logged to the Developer Console.

Note: The params are submitted once per http transaction. If you are using RPCManager.startQueue() to bundle multiple RPCRequests or DSRequests into a single HTTP turnaround, the params from the various RPCRequests will be merged, with the later-queued transactions winning on parameter name collisions. A warning will be logged in the Developer Console if multiple RPCRequests specified params.

Parameters:
params - params Default value is null

setHttpHeaders

public void setHttpHeaders(java.util.Map httpHeaders)
HTTP headers to send, as a mapping Header name -> Header value, eg { "Content-Type" : "text/xml" }

Valid with the xmlHttpRequest transport only.

Parameters:
httpHeaders - the http headers

getHttpHeaders

public java.util.Map getHttpHeaders()
HTTP headers to send, as a mapping Header name -> Header value, eg { "Content-Type" : "text/xml" }

Valid with the xmlHttpRequest transport only.

Returns:
the http headers

setEvalVars

public void setEvalVars(java.util.Map evalVars)
If you've set setEvalResult(Boolean) : true, then the property values of this object will be available in the evaluation scope of the result under the variable names specified by the property names.

So e.g. if evalVars is: {foo: "bar"} then a reference to the variable foo in the result will evaluate to "bar".

Parameters:
evalVars - the eval vars. Defaults to null