首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将列表传递到Play Framework中查看

将列表传递到Play Framework中查看
EN

Stack Overflow用户
提问于 2014-12-15 20:57:08
回答 1查看 1K关注 0票数 0

所以,我将Play框架与MongoDB结合使用。我试图将一个列表传递给我的视图,以遍历并显示行。

主计长:

代码语言:javascript
运行
复制
public static Result find() {
    List<DBObject> results = MongoController.find(MongoController.getLocalConnection("test"), "jobs");
    if (results == null) { 
        redirect("/");
    }
    return ok(find_job.render(results));
}

上面调用的MongoController使用以下函数(功能测试和测试):

代码语言:javascript
运行
复制
public static List<DBObject> find(DB database, String collectionName) {
    DBCursor cursor = database.getCollection(collectionName).find();

    List<DBObject> items = new ArrayList<DBObject>();
    while (cursor.hasNext()) {
        items.add(cursor.next());
    }

    return items;
}

查看:

代码语言:javascript
运行
复制
@(results : List[DBObject])

我收到的错误是:

代码语言:javascript
运行
复制
Compilation error:

Not found: type DBObject

有人有指点吗?我很抱歉-我对这个框架不熟悉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-15 21:04:38

在将内容导入本地命名空间时,旋转模板的工作方式并不完全相同。默认情况下,只将models包和其他一些播放包导入视图命名空间。之后进行的导入不用于模板参数。

您需要使用完全限定的包名:

代码语言:javascript
运行
复制
@(results: List[com.mongodb.DBObject])

或者可以在templateImports中添加build.sbt键。也就是说,将这一行放入您的build.sbt文件中:

代码语言:javascript
运行
复制
TwirlKeys.templateImports += "com.mongodb.DBObject"

这将将前面的导入添加到所有已编译的模板中。请注意,这是用来玩2.3.x的。如果使用2.2.x,则应该使用以下方法:

代码语言:javascript
运行
复制
templatesImport += "com.mongodb.DBObject"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27492989

复制
相关文章

相似问题

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