【问题标题】:how to return map data from ajax request如何从ajax请求返回地图数据
【发布时间】:2016-12-02 09:07:10
【问题描述】:

这是我的 ajax 请求

var id = $(this).attr('data-id');

$.ajax({
    type: 'POST',
    url: '../include/residents.jsp',
    dataType: "json",
    data: {
        id: id,
    },
    success: function(data) {},
    error: function(data) {}
}).done(function() {
});

这是residents.jsp里面的内容

<%@ page import="java.io.*,java.util.*, javax.servlet.*,java.text.*" %>
<%@ page import="javax.swing.*" %>
<%@page import="java.text.DateFormat"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.sql.PreparedStatement"%>
<%@ page language="java"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@ include file="dbconfig.jsp" %>

<% 
    String id = request.getParameter("id");


    try {

        conn.setAutoCommit(false);
        PreparedStatement preparedStatement = null;
        Map map = new HashMap();
        String add_supplemental = "SELECT * FROM residence_tb WHERE ri_id = ?"; 

            preparedStatement = conn.prepareStatement(add_supplemental);
            preparedStatement.setString(1,id);
            out.println("before");
            ResultSet rs = preparedStatement.executeQuery();
            while (rs.next()) {
                    String lname = rs.getString("ri_lname");
                    String fname = rs.getString("ri_fname");
                    String mname = rs.getString("ri_mname");
                    String suffix = rs.getString("ri_suffix");  
                    String bdate = rs.getString("ri_bdate");
                    String age = rs.getString("ri_age");    
                    String gender = rs.getString("ri_gender");
                    String status = rs.getString("ri_status");  
                    String mobileno = rs.getString("ri_mobileno");
                    String telephoneno = rs.getString("ri_telephoneno");    
                    String province = rs.getString("ri_province");  
                    String municipality = rs.getString("ri_municipality");  
                    String brgy = rs.getString("ri_brgy");  
                    String street = rs.getString("ri_street");  


                    map.put("lname", lname);
                    map.put("fname", fname);


            }

          out.println(map); 
//        rst.close();
//        stmt.close();

        conn.commit();
        conn.close();

    } catch(Exception e) {
        e.getMessage();
        e.printStackTrace();
    }
%>

当我收到out.println(map); 时,它看起来已经不错了

{fname=Juan, lname=Dela Cruz}

在响应中。当我尝试return map 时,我得到了

不兼容的类型:意外的返回值

我怎样才能返回map,以便我可以成功使用它或在ajax中完成功能

【问题讨论】:

  • 你从哪里复制的?..
  • 我只是将我在 stackoverflow 中搜索的内容添加到一个项目中。我只是尽我所能让它发挥作用
  • 你复制这个的问题是什么?
  • 我从 link 其他人那里得到了映射,我已经忘记了。其他人工作正常问题只是我如何将数据返回到 ajax 函数

标签: javascript java jquery ajax


【解决方案1】:

请从响应中返回一个 JSON 字符串。 JSON 是浏览器中的地图。

Map<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put( "Status", "Success" );
jsonMap.put( "Rows", 100 );
ObjectMapper mapper = new ObjectMapper();
mapper.getFactory().configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true);        
String jsonStr = mapper.writeValueAsString( jsonMap );
response.getOutputStream().print( jsonStr );

ObjectMapper 是 Jackson/fastxml 的一个类。此代码会将 JSON 返回到浏览器。

response.getOutputStream().print("{\"result\":[{ \"lname\": \"Smith\", \"fname\": \"John\"}, { \"lname\": \"Smith1\", \"fname\": \"John1\" }, { \"lname\": \"Smith2\", \"fname\": \"John2\" }]}");

在浏览器中:

var res = JSON.parse(request.responseText)
console.log(res.result);

【讨论】:

  • 我需要导入什么才能使用ObjectMapperJsonGenerator o 都会出错
  • 需要下载fastxml 2.5.x。如果返回值不复杂。您可以手动编写 JSON 格式。 response.getOutputStream().print("{\"状态\":\"成功\"}");
  • 例如我只想要[{ "lname": "Smith", "fname": "John", }, { "lname": "Smith1", "fname": "John1", }, { "lname": "Smith2", "fname": "John2", }] 你能展示一个样本吗?我只是想将这种数据返回给 ajax,这就是我所做的选择语句
  • 我在ObjectMapperJsonGenerator 中遇到错误,我使用了更新后的代码.. 如何解决?
  • 我现在知道了,我需要添加罐子......只有一个问题我不知道要添加哪个罐子来解决mapper.getFactory().configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true); 上的问题我遇到了getFactory amd @987654331 的问题@我解决了ObjectMapper的问题,我添加了jackson jar,它消失了
猜你喜欢
  • 1970-01-01
  • 2021-07-18
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
相关资源
最近更新 更多