向适配器传递参数时出现问题
Issues while passing parameters to Adaptor
我有一个登录表单,它接受用户名和密码。当用户点击提交按钮时,下面的js函数被调用。
function getGeoCode(){
var para=[$('#usernameInputField').val()];
alert("from sql adapter"+para);
var id = {username : para };
var invocationData = {
adapter: "GDMSDbAdaptor",
procedure: "getGeoCode",
parameters: [id]
};
alert("before adapter proc call");
WL.Client.invokeProcedure(invocationData, {
onSuccess: getMessage,
onFailure: getMessageOnfailure
});
alert("after adapter proc call");
}
下面的适配器代码在上面的函数
之后执行var procedureStatement = WL.Server.createSQLStatement("SELECT DISP_NUMBER,DISP_STATUS,DISP_CREATE_DATE,CUST_CONT_NAME,DISP_RES_OWNER,DISP_MANAGER FROM GDMW.DISPUTE WHERE DISP_RES_OWNER IN (SELECT USER_CNUM FROM GDMW.USER_ACC_PROFILE WHERE USER_EMAIL=?)");
function getGeoCode(data) {
var email=data.username;
WL.Logger.info("In getGeoCode method"+email);
return WL.Server.invokeSQLStatement({
preparedStatement : procedureStatement,
parameters : [email]
});
}
运行上述代码得到以下错误
[ERROR] FWLSE0099E:调用过程时发生错误[项目GDMSLoginApp]GDMSDbAdaptor/getGeoCodeFWLSE0100E:参数:[project GDMSLoginApp] TypeError: Cannot find default value for对象。3 (C % % 5 cnewworkspaceworklight % 5 cgdmsloginapp % 5 cadapters % 5 cgdmsdbadaptor/GDMSDbAdaptor-impl.js # 22)FWLSE0101E:由[项目]引起GDMSLoginApp nullorg.mozilla.javascript。EcmaError: TypeError: Cannot查找对象的默认值。3 (C % % 5 cnewworkspaceworklight % 5 cgdmsloginapp % 5 cadapters % 5 cgdmsdbadaptor/GDMSDbAdaptor-impl.js # 22)
但是如果我像下面这样硬编码参数(email id),它会工作得很好:
function getGeoCode(){
var para=[$('#usernameInputField').val()];
alert("from sql adapter"+para);
var id = {username : 'some@email.address' };
var invocationData = {
adapter: "GDMSDbAdaptor",
procedure: "getGeoCode",
parameters: [id]
};
alert("before adapter proc call");
WL.Client.invokeProcedure(invocationData, {
onSuccess: getMessage,
onFailure: getMessageOnfailure
});
alert("after adapter proc call");
}
与单引号有关吗?
我的第一个猜测是,这是发生的,因为你使用括号:
var para=[$('#usernameInputField').val()];
当你不应该:
var para=$('#usernameInputField').val();
你也可以这样做:
var id = {username : $('#usernameInputField').val() };
相关文章:
- 参数变量出现ngTable指令问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- 简单的ES6承诺问题-交换解决和拒绝参数
- 视点参数关闭标记问题
- 参数未正确传递给AJAX-编码问题
- 传递参数的问题,以及为MYSQL集成准备代码的问题
- javascript中传递参数的问题
- 作为参数传递时出现撇号问题
- Javascript函数和这个参数的一些问题
- 列表.js参数问题
- 问题将 Javascript 数组发送到带有 List
参数的 Web API 方法 - VBScript 将参数传递给 JavaScript 问题
- 删除导致页面刷新出现问题的查询参数
- Angular js - 解决不将参数传递给控制器的问题
- 在angularjs/javascript中将参数传递给命名回调函数的问题
- 使用函数作为参数 - 问题
- CoffeeScript - 将参数传递给超级构造函数时出现问题
- 作用域和将参数传递给动态创建的事件处理程序时出现问题
- 参数数量错误的问题
- 在 javascript 中通过初始化器函数传递参数时遇到问题