我正在正确地获取从 servlet 发送的 json 内容,但是当我尝试使用 for 循环在对话框中设置它时,我无法做到,只有最后一个元素正在更新。我可以通过指定我不想的每个元素来手动设置它。
我的.js文件
goog.events.listen(request, "complete", function(e){
var xhr = /** @type {goog.net.XhrIo} */ (e.target);
res = xhr.getResponseJson();
var dialog1 = new goog.ui.Dialog(null, true);
var mycount = count(res);
for(var m=0;m<mycount;m++)
{
dialog1.setContent("<a id='user' href='#'>"+res[m].user+
"</a><br>");
}
/*
dialog1.setContent(
"<a id='user1' href='#'>"+res[0].user+"</a><br><a id='user2' href='#'>"
+res[1].user+"</a><br><a id='user3' href='#'>"
+res[2].user+"</a><br><a id='user4' href='#'>"
+res[3].user+"</a><br><a id='user5' href='#'>"
+res[4].user+"</a><br><a id='user6' href='#'>"+res[5].user+"</a>");
*/ //What I was using previously and want to get rid of it
dialog1.setTitle('User Switch');
dialog1.setVisible(true);
dialog1.getButtonSet(false);
for(var i=1;i<mycount+1;i++){
goog.events.listen((goog.dom.getElement('user'+i)), goog.events.EventType.CLICK,
function(e) {
myval = (goog.dom.getElement(e.target).innerHTML);
goog.dom.setTextContent(goog.dom.getElement('update'),myval);
dialog1.dispose();
});
}
Json sent from my servlet
PrintWriter out = resp.getWriter();
JSONArray json = new JSONArray();
JSONObject userdet1 = new JSONObject();
JSONObject userdet2 = new JSONObject();
JSONObject userdet3 = new JSONObject();
JSONObject userdet4= new JSONObject();
JSONObject userdet5= new JSONObject();
JSONObject userdet6= new JSONObject();
userdet1.put( "user", "arjun1.daglur1@mesi.com");
userdet2.put( "user", "arjun2.daglur2@mesi.com");
userdet3.put( "user", "arjun3.daglur3@mesi.com");
userdet4.put( "user", "arjun4.daglur4@mesi.com");
userdet5.put( "user", "arjun5.daglur5@mesi.com");
userdet6.put( "user", "arjun6.daglur6@mesi.com");
json.add(userdet1);
json.add(userdet2);
json.add(userdet3);
json.add(userdet4);
json.add(userdet5);
json.add(userdet6);
out.print(json);
out.close();