尽管有数据

时间:2017-10-04 19:43:44

标签: java mongodb jsp servlets

我将这些数据从servlet传递给JSP:

[
    Document {
        {_id=59d25b1e41affc3dbc3b47c4, name=John, address=Baker Street}
    }, 
    Document {
        {_id=59d2a67541affc33ccc98a0b, name=John, address=Baker Street}
    }
]

JSP文件。

<table>
    <c:forEach items="${NameList}" var="document">
        <tr>
            <td><c:out value="${document.string('name')}" escapeXml="true" /></td>   
            <td><c:out value="${document.string('address')}" escapeXml="true" /></td>
        </tr>
    </c:forEach> 
</table>

但是,我的JSP中没有显示任何值。

有人可以帮助我弄清楚我正在做的错误吗?

编辑:

这是我的查询,它使用关键字

搜索MOngoDb中的字段
    List<Document> NameList= collection.find(eq("name", fname)).into(new ArrayList<Document>());

文件来自org.bson.Document

我使用以下代码将其发送到JSP:

     request.setAttribute("NameList", NameList);
     request.getRequestDispatcher("main.jsp").forward(request, response);

然后在main.jsp中,我有在此编辑部分之前给出的代码。

由于我是JSP,servlet和MongoDB的新手,我不明白如何从我传递的列表中提取名称,地址等确切数据。

1 个答案:

答案 0 :(得分:0)

代码似乎没有任何问题,尝试通过在循环外执行此操作来缩小问题范围:

const board = (size, cells) =>
  {
    const loop = (acc, line, [c, ...cs]) =>
      line === 0
        ? acc
        : loop (acc + c (size) + '\n', line - 1, [...cs, c])
    return loop ('', size, cells)
  }
  
const cell = str => size =>
  size === 0
    ? ''
    : str + cell (str) (size - 1)

const black =
  cell ('* ')

const white =
  cell (' *')
  
const third =
  cell ('# ')

const fourth =
  cell (' @')
        
console.log (board (8, [black, white, third, fourth]))
// * * * * * * * * 
//  * * * * * * * *
// # # # # # # # # 
//  @ @ @ @ @ @ @ @
// * * * * * * * * 
//  * * * * * * * *
// # # # # # # # # 
//  @ @ @ @ @ @ @ @