使用AJAX和JSP创建动态表

时间:2014-02-05 05:34:25

标签: java ajax jsp

我有一个HTMl表单,它有一个datepicker字段。我正在使用AJAX将此参数发送到JSP,并将此日期与数据库进行比较。如果找到匹配项,它应该动态创建行并打印表日期。

我的问题是我应该在哪里放置表创建的代码 - 内部JSP或使用DOM的AJAX。

我尝试使用AJAX来做,但responseText正在返回一个由space分隔的字符串。所以我想使用split并迭代数组并动态创建元素。它不起作用。

function fetch()
{
    alert("sadasd");
    var c= new XMLHttpRequest();

    c.onreadystatechange= function()
    {
        if(c.readyState==4)
        {
            var text=c.responseText;
        }
    }

    c.open("GET","serv.jsp?filter="+document.getElementById("datepicker").value,true);
    c.send();
    x=text.split(" ");
    //document.write(x[1]);
}    

Serv.jsp

<%@page import="java.sql.*" %>
<% 
    try {
        Class.forName("com.mysql.jdbc.Driver");
        java.text.SimpleDateFormat st = new java.text.SimpleDateFormat("MM/dd/yyyy");
        java.util.Date utilDate = st.parse(request.getParameter("filter"));
        java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

        java.sql.Connection con = java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/ankur", "root", "root");
        PreparedStatement stm = con.prepareStatement("select * from employee");
        ResultSet rs = stm.executeQuery();

        while (rs.next()) {
            if (rs.getDate(3).equals(sqlDate)) {
                out.println(rs.getString(1));
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }    
%>

1 个答案:

答案 0 :(得分:1)

对于打印表,您可以在jsp页面中使用HTML标记

喜欢

 while(rs.next())
    {if(rs.getDate(3).equals(sqlDate))
    {
          String sql = "<table><tr><td>"+rs.getString(1)+"</table></tr></td>";   
    }
    }}

或者对于使用ajax的击球手,您可以使用此link