0

我正在尝试处理 ajax 和 servlet 之间的请求/响应:用户单击 Google 地图标记,然后通过 ajax,他使用他的 ID 调用相对于标记的评论。

这应该是 Ajax 代码

 function infoCallback(infowindow, marker) {
    return function() {
        $.ajax({
            type: 'POST',
            url: 'commentListener',
            data: {
                id: marker.id,
                comment:$('#comment').val()
            },
            success:function(data){
                var comment = $('#output').html(data);
                infowindow.setContent(comment);
                infowindow.open(map, marker);
            }
        });
    };
}

这应该是 Servlet 代码

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    long id = Long.parseLong(request.getParameter("id"));
    String comment = //comment relative to the id
    /*Way to send the comment to the infowindow*/
    response.getWriter().write("{comment:"+comment+"}");
}

对不起,如果这一切都不是那么清楚!

4

1 回答 1

1

(由 OP 在问题编辑中回答。转换为社区 wiki 答案。请参阅没有答案的问题,但问题在评论中解决(或在聊天中扩展)

OP写道:

解决了

使用 PrintWriter

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    long id = Long.parseLong(request.getParameter("id"));
    String comment = //get comment by id
    try {  
        PrintWriter out;
        out = response.getWriter();  
        out.print(comment);
    } catch (IOException e) {  
        e.printStackTrace();  
    }
}

这是ajax

function infoCallback(infowindow, marker) {
    return function() {
        $.ajax({
            type: 'POST',
            url: 'commentListener',
            data: {
                id: marker.id,
            },
            success:function(result){
                infowindow.setContent(result);
                infowindow.open(map, marker);
            }
        });
    };
}
于 2015-01-30T12:13:21.323 回答