如何在控制器的ajax调用中使用返回列表

时间:2015-09-15 09:57:56

标签: javascript jquery html ajax

我正在使用ajax调用将数据存储到DB中,而控制器正在返回commentObject列表。 我如何在JSP中访问此列表? 我的ajax电话是:

function StoreCommentAndRefreshCommentList(e) {
    var commentData = document.getElementById(ActualCommentTextId).value;
    $.ajax({
        type : 'POST',
        url : 'CommentStoreAndRetrieve',
        data : "commentData=" + commentData + "&ImageId=" + commetTextButtonId[1],
        success : function(commentList) {
            //alert('comments stored successfully');
            //alert('comment data is...'+res.CommentDataDoc[0]);

        },
        error : function(e) {
            alert('Error: ' + e);
        }
    }); 
}

请告诉我如何在此处访问列表数据。

3 个答案:

答案 0 :(得分:0)

function StoreCommentAndRefreshCommentList(e) {
var commentData = document.getElementById(ActualCommentTextId).value;
$.ajax({
    type : 'POST',
    url : 'CommentStoreAndRetrieve',
    data : "commentData=" + commentData + "&ImageId=" + commetTextButtonId[1],
    dataType : "xml",
    success : function(commentList) {
        alert($(commentList).text());

    },
    error : function(e) {
        alert('Error: ' + e);
    }
}); 
}

答案 1 :(得分:0)

你可以f.e.在JSP中创建<input type='hidden' id='someId'/>,然后在成功函数中,您可以分配$("#someId").val(...);

等数据

另一个想法是通过放置<script>var myVar = ""</script>在JSP中创建JS变量。然后在你的成功函数中你可以参考这样的&#39;全球&#39;变量。 Althogh,我相信通常的作业(myVar = response.yourList)不适用于response对象(问题就是这种情况)。解决方案是创建一个数组var arr = [],然后在for循环中你可以将一些完成它。

答案 2 :(得分:0)

我得到了解决方案。 我确实使用$ .each(res,function(key,val)迭代一个并使用val字段动态构建标签。这里key保存索引位置,val保存相应的对象。然后我确实逐个访问了一个字段val.filedname(我们为pojo创建的)。

谢谢大家。