地图[诠释,字符串]在播放框架模板(Map[Int, String] in Play framewo

2019-10-18 00:18发布

我使用的播放2.0.4框架,我可以成功地创建一个接受的模板Map[String, String]通过把这个控制器零件模板:

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

template.scala.html

@(map : Map[String, String])

但是,如果我改变了第一StringInt (整数控制器部分),我得到这个异常:

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

是否有可能定义一个整数 - 在游戏框架>字符串映射如果是这样,我怎么能实现呢?

编辑:
当我在控制器更改代码发生异常:

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

而在模板:

@(map: Map[Int, String])

Answer 1:

在模板中,可以指定自己的Map的键scala.Int S,但你给它一个Mapjava.lang.Integer S作为密钥。

解决的办法是在你的模板改变线路

@(map: Map[Integer, String])


Answer 2:

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

有自动转换助手从Java到斯卡拉(和斯卡拉到Java)。 我不知道,如果能适用,如果这种情况下,让你有一个Map<Integer, String>render方法。



文章来源: Map[Int, String] in Play framework template