如何使用Ajax调用从servlet获取ArrayList数据到JSP

3

我在window.load()事件中通过ajax调用了一个servlet。但是当我想要在警告框中显示成功获取的值时,它显示为[object XMLDocument],我不知道为什么。这是我第一次使用ajax调用。

以下是我的ajax调用代码...

$(window).load(function() {
        $.ajax({
            type: 'GET',
            url: 'Sites',
            datatype:'text',
            success: function(data) {
                alert(data);
                debugger;
                var city=data;
                for(var i in city)
                {
                    output ='<input type="checkbox"   id="'+city[i]+'" name="'+city[i]+'" value="'+city[i]+'" />'+city[i]+'<br />'
                }
                console.log(output)
            }
        });
    });

这是我的servlet代码,我在其中以arraylist的形式发送数据。

PrintWriter out = response.getWriter();
    ArrayList calltype = new ArrayList();

    try {
        String strQuery = "";
        ResultSet rs = null;

        conexion conexiondb = new conexion();
        conexiondb.Conectar();

        strQuery = "Select * from sites";

        rs = conexiondb.Consulta(strQuery);

        while (rs.next()) {
            String toc = rs.getString("sites");
            calltype.add(toc);
        }

        out.print(calltype);
        System.out.println(calltype);
        out.close();

    } catch (Exception e) {
        // display stack trace in the browser
        System.out.println(e);
    }

任何关于此的帮助都将不胜感激... 提前致谢。


1
你确定你的ajax调用会到servlet吗? - Vinoth Krishnan
@VinothKrishnan 是的,它将会传递到servlet...从firebug firebug状态是OK的,响应也会针对站点名称(如[Mumbai、Delhi、Bangalore])返回。 - Adi
将您的 dataType : "text"dataType : "html"。这将返回文本。有关更多信息,请阅读 jQuery Ajax 文章 - Vinoth Krishnan
@VinothKrishnan非常感谢您,现在城市的值已经显示在警告框中,但它没有进入循环以动态地生成复选框,请检查我的脚本代码。 - Adi
@Adi 它提示了什么? - fujy
1个回答

2

@Adi,您接收到的数据值是什么,例如[mumbai,chennai]?请将这些值存储在JavaScript数组变量中。例如:

var cities = ["mumbai", "chennai"];

var values = [];
values = data;

然后,您可以使用jQuery .each()函数jQuery each function来遍历每个城市。

$.each(values, function( index, value ) {
   alert( index + ": " + value );
});

我还没有检验过这段代码,请告诉我它是否有帮助。


非常感谢您,先生。请问能否共享 jQuery 的 .each() 函数的链接? - Adi
我编辑了我的回答,你也可以这样做。 - Vinoth Krishnan
先生,我想根据逗号分隔这个数组的值。 - Adi
1
兄弟,你试过$.each()函数吗?这是从数组中提取值的最佳方式。我希望你不需要索引,但你可以在函数(each函数)内部获取城市名。 - Vinoth Krishnan
我刚刚fiddle了一下。你可以验证你的数据在迭代中是否正常工作。 - Vinoth Krishnan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接