Java 调用Worklight适配器并在列表视图中将该JSON数据显示为字符串
这是我的adapter.impl.js代码Java 调用Worklight适配器并在列表视图中将该JSON数据显示为字符串,java,javascript,ibm-mobilefirst,worklight-adapters,worklight-server,Java,Javascript,Ibm Mobilefirst,Worklight Adapters,Worklight Server,这是我的adapter.impl.js代码 //This procedure implementation is to get all the details from the table which in database. var procedure1Statement = WL.Server.createSQLStatement("select * from employee"); function procedure1() { return WL.Server.invokeSQLS
//This procedure implementation is to get all the details from the table which in database.
var procedure1Statement = WL.Server.createSQLStatement("select * from employee");
function procedure1() {
return WL.Server.invokeSQLStatement({
preparedStatement : procedure1Statement,
parameters : []
});
}
这是我在worklight中从SQL适配器检索到的JSON数据
{
"isSuccessful": true,
"resultSet": [
{
"EMAIL": "bkandregula@gmail.com",
"ID": 1,
"NAME": "Bhanu Kandregula"
},
{
"EMAIL": "rbkandregula@gmail.com",
"ID": 2,
"NAME": "Raghu Kandregula"
},
{
"EMAIL": "shyamsurisetty@gmail.com",
"ID": 3,
"NAME": "Shyam Surisetty"
},
{
"EMAIL": "bunny@gmail.com",
"ID": 4,
"NAME": "Bunny"
},
{
"EMAIL": "divya@gmail.com",
"ID": 5,
"NAME": "Divya Sri"
},
{
"EMAIL": "chandhu@gmail.com",
"ID": 6,
"NAME": "Chandana"
}
]
}
我不是要从客户端调用这个适配器,并在我的移动控制台的列表视图中显示这些数据。为此,这是我在客户端js文件中使用的代码
function wlCommonInit(){
LoadSQLRecords();}
function loadSQLRecords(){
var invocationData = {
adapter : 'MySQLadap',
procedure : 'procedure1',
parameters : []
};
WL.Client.invokeProcedure(invocationData,{
onSuccess : loadSQLQuerySuccess,
onFailure : loadSQLQueryFailure
});
}
function loadSQLQuerySuccess(result) {
WL.Logger.debug("Retrieve success" + JSON.stringify(result));
displayFeeds(result.invocationResult.resultSet);
}
function loadSQLQueryFailure(result) {
WL.Logger.error("Retrieve failure");
}
function displayFeeds(items) {
var ul = $('#itemsList');
for (var i = 0; i < items.length; i++) {
var li = $('<li/>').html(items[i].id);
li.append($('<li/>').html(items[i].name));
li.append($('<li/>').html(items[i].email));
li.append($('<hr>'));
ul.append(li);
}
}
这是我的HTML文件代码,用于在屏幕上显示我的数据
<div id="wrapper">
<ul id="itemsList"></ul>
</div>
但这对我不起作用。我一直在搜索许多博客和网站,但我无法触发这一点。请帮助我调用适配器并在移动控制台的列表视图中显示该数据。谢谢。您需要更正以下问题,然后重新部署应用程序 您拼错了函数名: LoadSQLRecords应为LoadSQLRecords 在修复之前,您应该在Chrome DevTools的控制台中看到以下内容:
worklight.js:5147 Uncaught Exception: Uncaught ReferenceError: LoadSQLRecords is not defined at (compiled_code):4
main.js:4 Uncaught ReferenceError: LoadSQLRecords is not defined
为了实际显示任何值,您需要更改以下内容
使用items.invocationResult.resultSet
对属性使用正确的大小写
发件人:
致:
打开Chrome的开发者工具,在其控制台中检查您遇到的错误。。。确保在控制台打开时刷新页面。完成@IdanAdar,但无法获得输出。代码看起来不错,但我不知道哪里出错了。你是什么意思?您在控制台中看到了什么?你犯了什么错误?你在屏幕上看到了什么?将你的adapter-impl.js代码添加到问题中。我做了@IdanAdar,请看一下我的适配器代码。谢谢,完成了。它在@Idan Adar工作。谢谢你的支持。@BhanuPrakash,很高兴听到。请按回答的那样做标记。谢谢你@Idan Adar
worklight.js:5147 Uncaught Exception: Uncaught ReferenceError: LoadSQLRecords is not defined at (compiled_code):4
main.js:4 Uncaught ReferenceError: LoadSQLRecords is not defined
for (var i = 0; i < items.length; i++) {
var li = $('<li/>').html(items[i].id);
li.append($('<li/>').html(items[i].name));
li.append($('<li/>').html(items[i].email));
li.append($('<hr>'));
ul.append(li);
}
for (var i = 0; i < items.invocationResult.resultSet.length; i++) {
var li = $('<li/>').html(items.invocationResult.resultSet[i].ID);
li.append($('<li/>').html(items.invocationResult.resultSet[i].NAME));
li.append($('<li/>').html(items.invocationResult.resultSet[i].EMAIL));
li.append($('<hr>'));
ul.append(li);
}