【问题标题】:Return arraylist as object from action Class to jsp in Java Using Ajax?使用Ajax将arraylist作为对象从动作类返回到Java中的jsp?
【发布时间】:2013-12-06 22:52:40
【问题描述】:

如何使用 Ajax 将 ArrayList 从 Acton 返回到 JSP。我能够从数据库中获取值并迭代并将其存储在 ArrayList 中。但我不确定如何从 Action 返回列表并在 JSP 代码中迭代相同的列表。 请找到以下代码

动作类:

    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 代码中迭代。提前致谢。

【问题讨论】:

  • Arraylist 是类,您尝试获取一个对象作为 ajax 的响应。无法将对象检索为 ajax 响应。您可以通过将其放入会话中或使用 Gson 来获取页面中的数组列表。

标签: java javascript ajax arraylist


【解决方案1】:

您可以使用 JSON 将您的 arrayList 转换为 java 脚本数组

您可以在 JSP 页面中编写此 javascript 函数(从响应中读取列表后)

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

如果你想使用纯AJAX,我建议返回XML数据作为响应,你可以解析,见下面有用的链接

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

【讨论】:

    猜你喜欢
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2016-09-05
    相关资源
    最近更新 更多