我正在使用play framework v2.2并尝试将地图传递给scala模板。地图以字符串作为键,用户定义的对象作为其值。我的控制器是Java - 模板在Scala中。
控制器:
Map<String, UDObject> myMap = new HashMap<String, UDObject>();
UDObject ud1 = new UDObject(a,b,c);
myMap.put("abcd", ud1);
return ok(index.render(myMap));
Index.scala.html模板:
@(myMap: Map[String, UDObject])
当我尝试reload / eclipse或使用play run / start时 - 我收到一个编译错误,抱怨模板找不到用户定义的对象UDObject。知道我做错了吗?
答案 0 :(得分:1)
您需要在Play模板的参数声明中使用完全限定名称,例如:
@(myMap: Map[String, com.example.UDObject])
不幸的是没有办法import
,所以模型,视图或Scala命名空间中的任何内容都不能使用全名。
答案 1 :(得分:1)
也可以为所有模板添加此导入。
templatesImport ++= Seq("com.example.UDObject")
现在您不需要使用班级的完全限定名称。