所以,我将Play框架与MongoDB结合使用。我正在尝试将List传递给我的视图以循环显示行。
控制器:
public static Result find() {
List<DBObject> results = MongoController.find(MongoController.getLocalConnection("test"), "jobs");
if (results == null) {
redirect("/");
}
return ok(find_job.render(results));
}
上面调用的MongoController使用以下函数(运行 - 尝试和测试):
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;
}
查看:
@(results : List[DBObject])
我收到的错误是:
Compilation error:
Not found: type DBObject
有人有指点吗?我道歉 - 我是这个框架的新手。
答案 0 :(得分:0)
将东西导入本地命名空间时,旋转模板的工作方式完全相同。默认情况下,只将models
包和一些其他Play包导入到视图命名空间中。之后进行的导入不会用于模板参数。
您需要使用完全限定的包名称:
@(results: List[com.mongodb.DBObject])
或者您可以添加到templateImports
中的build.sbt
键。即,您将此行放入build.sbt
文件中:
TwirlKeys.templateImports += "com.mongodb.DBObject"
这会将以前的导入添加到所有已编译的模板中。请注意,它适用于Play 2.3.x.如果使用2.2.x,那么您可以使用以下代码:
templatesImport += "com.mongodb.DBObject"