首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置servlet和对象数组的数据?

问如何设置servlet和对象数组的数据?
EN

Stack Overflow用户
提问于 2015-04-30 05:36:20
回答 1查看 1.5K关注 0票数 2

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

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

我使用的是Java1.6和默认的数据对象1.10.4的jQuery。

我确实验证了数据是否在集合中,并在向JSP页面的请求中发出数据。

最初,我对数据进行了硬编码的值,以确保基于来自Datatables站点的Javascript源数据正确地设置了datatable,但现在我有了实际的数据,并且不确定如何正确地将它放在表中。

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

代码语言:javascript
复制
 "ajax': './MyServlet", //invalid property assignment error?

我不知道那个错误意味着什么?

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

下面是带有scriptlet的HTML代码,现在循环遍历对象集合并添加列/行。我在另一个例子中看到了这个,所以我用它来试着让它起作用。

代码语言:javascript
复制
<!-- 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页面中使用基于几百行数据的可数据显示对象数组的最佳实践是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-30 05:56:29

通过查看您的代码,您将尝试使用ajax调用输入数据,同时使用jsp scriptlet中的整个数据。

在您的例子中,我认为不需要ajax部分。以下是我要做的事;

代码语言:javascript
复制
<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事件中,只有这样一个简单的初始化语句;

代码语言:javascript
复制
$('#example').dataTable( {
    "processing": true
} );

你已经准备好了!

另外,我建议您在JSP页面中使用EL,这样可以省去很多麻烦,而且更容易使用。上面的脚本可以这样编写:

代码语言:javascript
复制
    <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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29959758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档