如何为servlet和对象数组设置数据表



我有一个servlet,它将模型bean对象的集合返回到jsp页面。从那里我想显示这些数据,但我不确定正确的方法

从数据库返回的平均行数最多可能少于几百行。

我使用的是Java 1.6和带有Datatables 1.10.4的默认jQuery。

我确实验证了数据是否在集合中,以及它是否在对JSP页面的请求中输出。

最初,我对数据进行了硬编码,以确保基于Datatables站点的Javascript Sourced data正确设置了数据表,但现在我有了实际数据,我不知道如何正确地将其放入表中。

这是我的新jQuery代码,它在Eclipse中显示了这个错误:

"ajax': './MyServlet", //invalid property assignment error?

我不知道那个错误是什么意思?

<!-- jQuery code -->
$(document).ready(function () {
$('#datatable').dataTable({
"processing": true,
"ajax': './MyServlet", 
"columns": [
{ "data": "Last Name" },
{ "data": "First Name" },
{ "data": "Mailing Address" },
...
]
});
}); 

这是我的HTML数据表代码和scriptlet,现在可以循环遍历我的对象集合并添加列/行。我在另一个例子中看到了这一点,所以我使用它只是为了让它发挥作用。

<!-- The datatable in the jsp page -->
<table width="100%" id="datatable" class="display compact" cellspacing="0">
<%
if(null != modelBeanCollection  && modelBeanCollection.size() > 0) {
%>
<%
List<modelBean> projectList = (List<modelBean>)(List<?>) modelBeanCollection;
for (modelBean project : projectList) { 
%>
<tr>
<td><%=project.getLastName()%></td>
<td><%=project.getFirstName()%></td>
<td><%=project.getAddress1()%></td>
...
</tr>
<%}
}%>
</table>

我的主要问题是,在jsp页面中显示对象数组的最佳实践是什么,使用我所拥有的数据表,基于几百行数据?

通过查看您的代码,您试图通过ajax调用初始化数据表,同时使用jsp scriptlet中的整个数据。

在您的情况下,我认为不需要ajax部分。以下是我要做的;

<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
/* Column names goes here for header */
<th>A</th>
<th>B</th>
....
</tr>
</thead>
<tbody>
<%
if(null != modelBeanCollection  && modelBeanCollection.size() > 0) {
%>
<%
List<modelBean> projectList = (List<modelBean>)(List<?>) modelBeanCollection;
for (modelBean project : projectList) { 
%>
<tr>
<td><%=project.getLastName()%></td>
<td><%=project.getFirstName()%></td>
<td><%=project.getAddress1()%></td>
...
</tr>
<%}
}%>
</tbody>
</table>

$(document).ready事件中,只有一个简单的initialize语句,如下所示;

$('#example').dataTable( {
"processing": true
} );

你准备好了!

此外,我还建议您将EL用于JSP页面,这将为您省去很多麻烦,而且它更易于使用。上面的脚本可以这样写:

<c:if test="{not empty modelBeanCollection}">
<c:forEach items="${modelBeanCollection}" var="project">
<tr>
<td>${project.getLastName}></td>
<td>${project.getFirstName}></td>
<td>${project.getAddress1}</td>
...
</tr>
</c:forEach>
</c:if>

最新更新