2013-11-22 27 views
0

如何從Acton返回一個ArrayList到JSP使用Ajax。我能夠從數據庫獲取值並迭代並將其存儲在ArrayList中。但我不確定如何從Action返回列表並在JSP代碼中迭代相同的列表。 請找到下面的代碼將ArrayList中的ArrayList作爲對象返回給Java中的jsp使用Ajax?

Action類:

public ActionForward fetchValues(ActionMapping mapping, ActionForm form, 
      HttpServletRequest request, HttpServletResponse response) 
      throws Exception { 
    try 
    { 
     PrintWriter out=response.getWriter(); 
     List coordinateList=new ArrayList(); 
     Connection con; 
     String link=request.getParameter("test"); 
     con = DriverManager .getConnection("jdbc:postgresql://localhost:----/testDatabase", "test","test1"); 
     String sql="select placeNames from line_route where gid='"+test+"'"; 
     Statement stmt=con.createStatement(); 
     ResultSet rs = stmt.executeQuery(sql); 
     while(rs.next()) 
     { 
      String str = rs.getString(1); 
      str = str.replaceAll("\\(", ""); 

      String[] a = str.split(","); 
      for (String b : a) 
      { 
       System.out.println("-" + b + "-"); 
       coordinateList.add(b); 
      } 
     } 
     out.println(coordinateList); 
     return null; 

    } 
    catch (Exception e) 
    { 
     System.out.println("Exception!"); 
     e.printStackTrace(); 
    } 

return null; 
} 

JSP代碼:

function fetchValues() 
{ 
var id=document.getElementById('linkNo').value; 
initRequest(); 
req.open("POST", "./sendLinks.do?actionMethod=fetchValues&link="+id, true); 
req.send(null); 
} 

    var req; 
    function initRequest() 
    {  
     if (window.XMLHttpRequest) {  
      req = new XMLHttpRequest();  
     } else if (window.ActiveXObject) {  
      isIE = true;  
      req = new ActiveXObject("Microsoft.XMLHTTP");  
     }  
    } 

請求各位請指導爲如何抓在JSP列表並在JavaScript代碼中迭代。提前致謝。

+0

的ArrayList類是並嘗試什麼ing就是得到一個對象作爲ajax的響應。無法將對象作爲ajax響應進行檢索。你可以通過在你的會話中或使用Gson來獲取你的頁面中的數組列表。 – pikrut

回答

0

可以使用JSON

您的ArrayList轉換爲Java腳本陣列

,你可以這樣寫JavaScript的一個JSP頁面內功能

var varlist= <%=net.sf.json.JSONSerializer.toJSON(coordinateList) %>; 

(讀取從響應列表之後)如果你想使用純AJAX,我建議返回XML數據作爲迴應,你可以解析,請參見下面有幫助的鏈接

How to parse arraylist data sent from servlet into JSON in Jquery