11.17 文章列表分页搜索

为了方便检索我们的博客文章,我们再来给文章列表页面添加分页、搜索、排序等功能。我们使用前端组件DataTables来实现。

提示:更多关于DataTables,可参考: http://www.datatables.club/

11.17.1 引入静态资源文件

  1. <link href="/datatables/media/css/jquery.dataTables.css" rel="stylesheet">
  2. <script src="/datatables/media/js/jquery.dataTables.js"></script>

11.17.2 给表格加上id

我们给表格加个属性id=”articlesDataTable” :

  1. <table id="articlesDataTable" class="table table-responsive table-bordered">
  2. <thead>
  3. <th>序号</th>
  4. <th>标题</th>
  5. <th>作者</th>
  6. <th>发表时间</th>
  7. <th>操作</th>
  8. </thead>
  9. <tbody>
  10. <#-- 使用FTL指令 -->
  11. <#list articles as article>
  12. <tr>
  13. <td>${article.id}</td>
  14. <td><a target="_blank" href="detailArticleView?id=${article.id}">${article.title}</a></td>
  15. <td>${article.author}</td>
  16. <td>${article.gmtModified}</td>
  17. <td><a href="#" target="_blank">编辑</a></td>
  18. </tr>
  19. </#list>
  20. </tbody>
  21. </table>

11.17.3 调用DataTable函数

首先,我们配置一下DataTable的选项:

  1. var aLengthMenu = [7, 10, 20, 50, 100, 200]
  2. var dataTableOptions = {
  3. "bDestroy": true,
  4. dom: 'lfrtip',
  5. "paging": true,
  6. "lengthChange": true,
  7. "searching": true,
  8. "ordering": true,
  9. "info": true,
  10. "autoWidth": true,
  11. "processing": true,
  12. "stateSave": true,
  13. responsive: true,
  14. fixedHeader: false,
  15. order: [[1, "desc"]],
  16. "aLengthMenu": aLengthMenu,
  17. language: {
  18. "search": "<div style='border-radius:10px;margin-left:auto;margin-right:2px;width:760px;'>_INPUT_ <span class='btn btn-primary'><span class='fa fa-search'></span> 搜索</span></div>",
  19. paginate: {//分页的样式内容
  20. previous: "上一页",
  21. next: "下一页",
  22. first: "第一页",
  23. last: "最后"
  24. }
  25. },
  26. zeroRecords: "没有内容",//table tbody内容为空时,tbody的内容。
  27. //下面三者构成了总体的左下角的内容。
  28. info: "总计 _TOTAL_ 条,共 _PAGES_ 页,_START_ - _END_ ",//左下角的信息显示,大写的词为关键字。
  29. infoEmpty: "0条记录",//筛选为空时左下角的显示。
  30. infoFiltered: ""//筛选之后的左下角筛选提示
  31. }

然后把我们刚才添加了id的表格使用JQuery选择器获取对象,然后直接调用:

  1. $('#articlesDataTable').DataTable(dataTableOptions)

再次看我们的文章列表页:

Kotlin极简教程

已经具备了分页、搜索、排序等功能了。

到这里,我们的这个较为完整的极简博客站点应用基本就开发完成了。