从servlet获取json响应并在jsp表中显示?

时间:2013-08-08 07:54:16

标签: java javascript jquery html5

我正在调用一个servlet来获取数据库中的对象列表,并且该列表将从servlet返回为json。相同的json响应将显示在jsp表中,如下所示。

Servlet代码:

        String json = new Gson().toJson(resultList); 
        response.setContentType("application/json"); //here i have the data and i came to know by debugging 
        response.setCharacterEncoding("UTF-8");
        response.getWriter().write(json);

jquery代码:

$.ajax({
    type: "GET",
    url: "./dataFetchController",
    success: function(responseJson) {

console.log(responseJson); //it is not printing any result on firebug console

        var master = $(this).parents("table.myTable");

        $.each(responseJson, function(index, contact) {    // Iterate over the JSON array.
            // Get a new row based on the prototype row
            var prot = master.find(".prototype").clone();
            prot.attr("class", "");
            prot.find("#myName").attr("value", contact.name);
            prot.find("#myLastName").attr("value", contact.lastName);

            //master.find("tbody").append(prot);
            jQuery('table.myTable tr:last').before(prot);
        });
    },
    error: function(ob,errStr) {
        $('#contactForm #formProgress').html('');
        $('#contactForm #formProgress').html('<img src="./public/images/error.png" /> <span style="color:red">Save is not successful. Try Again.</span>');
    }
});

我没有得到任何json结果。我尝试使用控制台打印它但没有结果,但在servlet中它有从数据库返回的数据并使用debug验证。我在这里错过了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我无法在您的Ajax请求中看到“dataType”,如:

dataType:'json'

尝试添加它。

所以,它将成为:

$.ajax({
 type: "GET",
 url: "./dataFetchController",
 success: function(responseJson) {
       //alert and success handler
 },
 dataType: 'json',
 error : function(){
   // error handler
 });

dataType是您期望从服务器返回的数据类型