如何将列表从servlet传递给ajax调用

时间:2016-08-31 09:35:37

标签: java jquery ajax servlets

我有一个servlet列表:

String appname=request.getParameter("AppID");
System.out.println("Entered ajax request 1 : Get list");
List<Object> li = Model.getList(appname);
// enter your code here

我有一个AJAX调用,它从servlet中获取该列表:

$(document).ready(function() {
    $('#app-name').change(function () {
        var applname=$(this).value();
        $.ajax({
              url: '${pageContext.request.contextPath}/rollreturn',
              data: {AppID:applname},
              success: function(data){
                  var order_data = data;
                  $('#roll-name').html('');
                  $.each(order_data, function(i, item) {
                      $('<option value='+ order_data[i] +'>'+order_data[i]).html('</options>').appendTo('#roll-name');
                  });
              }
        });
    });
});

如何将列表传递给AJAX调用。你能帮我解决这个问题吗?

你能告诉我我写的AJAX电话是否正确吗?

2 个答案:

答案 0 :(得分:0)

通过在servlet中设置内容类型。

response.setContentType("application/json");

new Gson().toJson(li, response.getWriter());

导致ajax你将收到一个JSON对象,所以你必须解析它。

在JSP / HTML文件中解析JSON对象的方法有很多种。 一个简单的例子

See Demo

您还可以使用JSTL标记和scriplet标记解析JSON对象。

See this question

答案 1 :(得分:0)

您也可以使用OutputStream从servlet

写入列表值

下载gson jar here

import java.io.OutputStream;
import com.google.gson.Gson;

在你的doGet / doPost方法中

ArrayList<Object> listresult=new ArrayList<Object>();

listresult.add("values1");
listresult.add("values2");
listresult.add("values3");
listresult.add("values4");

response.setContentType("application/json");
OutputStream outputStream= response.getOutputStream();
Gson gson=new Gson();       
outputStream.write(gson.toJson(listresult).getBytes());
outputStream.flush();

在ajax成功函数中检索值

success: function(result){
for(var i=0;i<result.length;i++)
{           
 alert(result[i]);
}
},

答案为时已晚,有助于其他人