我有一个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电话是否正确吗?
答案 0 :(得分:0)
通过在servlet中设置内容类型。
response.setContentType("application/json");
new Gson().toJson(li, response.getWriter());
导致ajax你将收到一个JSON对象,所以你必须解析它。
在JSP / HTML文件中解析JSON对象的方法有很多种。 一个简单的例子
您还可以使用JSTL标记和scriplet标记解析JSON对象。
答案 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]);
}
},
答案为时已晚,有助于其他人