我正在尝试将我的java控制器中的字符串列表传递给scala模板 这是视图代码:
public static Result index() {
List<String> scripts = Arrays.asList(
"script1.js",
...
"scriptN.js"
);
return ok(views.html.index.render(scripts));
}
这是tempate代码:
@(scripts: List[String])
@main("test page")(scripts) {
... html here ...
}
我收到的错误(在Typesafe Activation Compile页面中):
类索引中的方法呈现不能应用于给定类型;
required:scala.collection.immutable.List
发现:java.util.List
原因:实际参数java.util.List无法转换为scala.collection.immutable.List by 方法调用转换
有没有办法解决它而不使用java&gt; scala转换?
我发现了这个问题:Play doesn't convert java-list to scala-list描述了类似的情况,虽然我没有任何我知道的templateImports,我甚至没有看到Build.scala文件......
有什么想法吗? 谢谢!
答案 0 :(得分:2)
尝试以下:
import scala.collection.JavaConverters;
public static Result index() {
List<String> scripts = Arrays.asList(
"script1.js",
...
"scriptN.js"
);
scala.collection.immutable.List<String> ls = JavaConverters.asScalaBufferConverter(scripts).asScala().toList();
return ok(views.html.index.render(ls));
}
答案 1 :(得分:1)
在模板代码中尝试以下内容:
@import java.util
@(scripts: util.List[String])