1

Map[String, String]我正在使用 Play 2.0.4 框架,我可以通过将其放入控制器部分成功地创建一个接受模板的模板:

Map<String, String> test = new HashMap<String, String>();
return ok(views.html.template.render(test));

并在template.scala.html

@(map : Map[String, String])

但是,如果我将第String一个更改为Int(控制器部分中的整数),我会得到这个异常:

 error: method render in class template cannot be applied to given types; 

是否可以在 Play 框架中定义 Integer -> String 映射,如果可以,我该如何实现?

编辑:
当我将控制器中的代码更改为:

Map<Integer, String> test = new HashMap<Integer, String>();

并在模板中:

@(map: Map[Int, String])
4

2 回答 2

2

在您的模板中,您指定您Map的键是scala.Ints,但您给它一个Mapsjava.lang.Integer作为键。

解决方案是将模板中的行更改为

@(map: Map[Integer, String])
于 2013-04-09T15:19:55.087 回答
0

使用您的代码,生成的render方法接受一个Map<Object, String>. 然后,您可以提供这样的地图。

有从 Java 到 Scala(以及从 Scala 到 Java)的自动转换助手。我不知道如果这种情况允许您使用Map<Integer, String>render方法,是否可以申请。

于 2013-04-09T14:11:59.460 回答