2013-12-08 32 views
0

好吧,我已经在这个问题上相当长一段时间了,并已经彻底研究过它。首先我使用Spring Tool Suite - MVC Project。在.jsp页面上工作使用javascript函数打印dymanic html表(jQuery数据表插件)

我想找出最佳/正确/有效的方式来动态创建和编辑一个HTML表格,该表格将基于来自MySql数据库的数据链接到dataTables(jQuery插件)表。

我希望用户能够根据不同的用户输入....按钮,价格范围输入等更新表格。

到目前为止,我研究过的最好方法是将表的创建封装在一个js函数中,然后创建其他函数,这些函数将改变表,添加到表,更新表或其他任何我想要执行的操作。我没有运气使用函数创建数据表,现在最好的办法是使用java连接到我的数据库并创建一个成功加载并显示数据库中的数据的SINLGE表,问题是我无法改变表加载页面后,基于新的SQL查询对表进行刷新的每次尝试都失败。

Datatables有一个非常大的api,我可以使用它向表中添加一行,但其他似乎很有用的功能,如更新表不起作用。

这让我想到如果我的方法应该完全重新考虑。我应该采取什么方法?

如果需要

我会后的代码预先感谢您

+0

你能提供你的代码吗? –

回答

0
<% 
ArrayList<ArrayList<String>> aaList = new ArrayList<ArrayList<String>>(); 
ResultSet rs; 
    Statement statement = null; 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection conn = DriverManager.getConnection("jdbc:mysql://ics321instance.cglh44ydeyny.us-east-1.rds.amazonaws.com/ics321", "user", "password"); 
    statement = conn.createStatement(); 
    //this query should return all items 
    rs = statement.executeQuery("select * from Product where price < 10;"); 

    int counter=1; 
    ResultSetMetaData metaData = rs.getMetaData(); 
    %> 

    <table id = "example"> 
    <thead> 
     <tr> 
      <% 
      for(int q = 1; q<=metaData.getColumnCount();q++) 
      {%> 
       <th><%= metaData.getColumnName(q)%></th> 
      <% 
      } 
      %> 
     </tr> 
    </thead> 
    <tbody> 
      <% 
      while(rs.next()) 
      { 
      %> 
       <tr> 
       <% 
       for(int i = 1; i<=metaData.getColumnCount();i++) 
       {%> 
        <td><%= rs.getString(i)%></td> 
       <% 
       } 
       %> 
       </tr>     
      <% 
      } 
      %> 
    </tbody> 
</table> 

所以在这里我提出到数据库的连接,并在jsp执行查询 - 我知道这是不好的做法,但我找不出任何其他方式

了在标题中,我有我的js

$(function() { 
    $("#example").dataTable({ 
     "sScrollY": "400px", 
     "bPaginate": false, 
     "bScrollCollapse": true 
    }); 
} 

我认为正确的做法是使用我的控制器中的JDBCTemplate - 但我不确定如何引用我的.jsp文件中的数据。

我的目标是再次有一个表(datatables jquery插件),并根据用户与jsp页面,按钮,文本输入等等的交互进行表更新。

有一种方法insude数据表API - fnDraw()应该重绘表,但我不知道该把函数放在哪里。

谢谢