将对象的arraylist返回给servlet的ajax调用

时间:2016-05-10 10:21:58

标签: java jquery json ajax arraylist

我通过脚本中的ajax调用将字符串值传递给servlet,并在类对象中检索相应的数据并将其存储在arraylist中。现在我需要这个arraylist成为'数据'返回到ajax调用。怎么做??

    `<script>
        $(document).ready(function(){
            var selected;

            $('#txtboxvalue').change(function(){
                selected = $('#txtboxvalue').val();

                  $.ajax({
                    url: "Servlet2",
                    type: "Post",
                    data: {"txtboxvalue":selected},
                    success : function(data)
                        {
                        //here is where I want to access the returned arraylist
                        }   
});
        });
</script>

的servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    ArrayList<Cust> list2=cusName.dispCustomer2(abcd);
PrintWriter out = response.getWriter();
out.println(list2);
}

但是像这样传球不起作用

1 个答案:

答案 0 :(得分:2)

您想要返回复杂数据:客户列表。 一个好的格式是发送格式为JSON的列表。

在服务器端获取一个类似GSON或Jackson的JSON库,并按如下方式序列化列表:

response.setContentType("application/json");
new Gson().toJson(list2, response.getWriter());

在客户端告诉JQuery您期望JSON响应。

  $.ajax({
      url: "Servlet2",
      type: "Post",
      data: {"txtboxvalue":selected},
      dataType: "json",
      success : function(list) {
          // list is the list as Javascript array
      }