java - 在 JSP 上使用 Jquery Ajax 在 Datatables 上显示
问题描述
这是我第一次使用 Jquery Ajax。
上下文是,我试图在 Datatable 上显示超过 10000 行数据,我之前所做的只是使用我的 servlet 将我的 Arraylist 数据转发到 JSP,然后循环并将数据显示到显示数据上.
加载数据表需要太多时间。所以我决定我想尝试使用 Jquery Ajax 看看这是否有助于解决问题。
我目前在实施它时遇到一些问题,有人可以帮助我吗?
我正在使用 GSON 序列化我的数组列表。
servlet.java
String json = gson.toJson(listS);
...
request.setAttribute("listS", json);
request.getRequestDispatcher("WEB-INF/index.jsp").forward(request, response);
索引.jsp
String list = (String) request.getAttribute("listStartup");
......
<td>Insert 1st Element</td>
<td>Insert 2nd Element</td>
<%
};
......
<script>
$(function () {
<% list = (String) request.getAttribute("listS");%>
$("#sp").DataTable({
"scrollY": 500,
"scrollX": true,
"paging": true,
"lengthChange": false,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": false,
"processing": true,
"serverSide": true,
"ajax" : list
});
});
</script>
我的 JSONarray 的结构是这样的,这是输出
[
{
"Element1": "Text",
"Element2": "Text",
},
{
"Element1": "Text",
"Element2": "Text",
},
....
]
如果有人愿意将我链接到一些我可以阅读的有用文档。我现在似乎找不到任何对我有帮助的东西。
我不确定如何遍历我的 JSONarray 以访问对象并显示我的 JSON 数据。如果有 1000 个对象,我将遍历每个对象并连续显示它们的数据。
我也不知道如何使它与数据表一起工作......
解决方案
您将获得 json 数组,其中每个 json 对象都有一些特定的键(Element1 和 Element2)。您只需要将这些键映射到数据表中的相应列。然后将列表传递给数据表进行渲染。
见下面的代码
$(function () {
var list = <% (String) request.getAttribute("listS");%>;
//convert string to json object
var listJson = JSON.parse(list);
var table = $("#sp").DataTable({
"scrollY": 500,
"scrollX": true,
"paging": true,
"lengthChange": false,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": false,
"columns": [ // map the columns here
{ "data": "Element1" },
{ "data": "Element2" }
]
});
//render list here
table.clear();
table.rows.add(listJson); // make sure that list should be json object and not text
table.draw();
});
推荐阅读
- selenium - NightwatchJS 和 Docker
- reactjs - 如何在无状态的条件外部反应组件中返回传递和返回变量?
- python - 为什么这个简单的 3 行程序不起作用?
- python - 像列表一样生成字典值
- php - Laravel 5.5 控制台电视条形图高图表多个数据集和标签
- django - 带有 2 个模型的 Django 内联模型表单集
- javascript - 如何将 ng-repeat 项目连续放置?
- ios - 如何在 Swift 中使用 WKwebView 制作活动指示符
- react-native - react-native 版本 0.55.4 和 0.56.0 的问题
- mysql - MySql 查询根据今天的日期选择用户