2016-08-31 34 views
1

我有一個servlet列表:如何從servlet傳遞一個列表到Ajax調用

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

XML或JSON是傳輸數據的來來回回的標準方式。所以把你的列表數據打包成JSON併發送給ajax調用。對於使用JSON API,您需要使用任何第三方JSON jar – Pawan

+0

@PreethiJain爲什麼我們需要任何第三方JAR? –

+0

@Khan從哪裏得到這個課程新的Gson()。 – Pawan

回答

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

0

您還可以使用的OutputStream從servlet的

寫列表值

下載GSON罐子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中檢索值uccess功能

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

回答是爲時已晚,它可以幫助一些人

相關問題