1

我正在尝试在 play framework 2.0.1 视图中迭代 mongo DBCursor。但是,没有列出任何内容。理想情况下,我想对光标进行分页,但即使我能够列出光标中的所有对象也可以。

这就是我正在做的事情。在我的控制器中,我查询 Mongo DB 并渲染 DBCursor。日志状态游标不为空。

然后在视图中我有以下内容:

@(cursor: com.mongodb.DBCursor)


@main("Title") {
<div id="objects" class="content">
 <h2>Objects</h2>

 @if(cursor.count() == 0) {
    There are currently no objects in the data base.
 } else {
    @while(cursor.hasNext()) {
        @cursor.next().get("name");
    }
 } 
</div>    
}

不幸的是,除了呈现页面时的标题之外,没有列出任何内容。有趣的是,如果我省略@while(cursor.hasNext())并只输出光标中的第一个对象,那么它就会呈现在页面上。

显然那段时间出了点问题。那么,是否可以在视图中呈现(和/或分页) DBCursor?

谢谢!

4

1 回答 1

3

也许@while 在 scala 模板中不存在!?

这种工作不打算在视图中完成。视图用于渲染,而控制器用于逻辑和访问数据库。考虑将 DBObjects 解析为控制器中的列表或数组,并使用 @for 在视图中对其进行迭代。

对于分页使用这样的东西:

myCollection.find(query).skip(40).limit(20);
于 2012-06-17T15:22:35.973 回答