播放框架模板中的java映射[Int,String]
我正在使用Play 2.0.4框架,通过将以下内容放入控制器部分,我可以成功创建一个接受Map[String, String]
模板的模板:
Map<String, String> test = new HashMap<String, String>();
return ok(views.html.template.render(test));
在{
@(map : Map[String, String])
但是,如果将第一个String
更改为Int
(控制器部分中的整数),则会出现以下异常:
error: method render in class template cannot be applied to given types;
是否可以定义一个整数->;Play框架中的字符串映射,如果是,如何实现
编辑:
当我将控制器中的代码更改为:
Map<Integer, String> test = new HashMap<Integer, String>();
并在模板中:
@(map: Map[Int, String])
# 1 楼答案
在代码中,生成的
render
方法接受Map<Object, String>
。然后,你可以提供这样一张地图有从Java到Scala(以及从Scala到Java)的自动转换帮助程序。我不知道如果这个例子允许你在
render
方法中有一个Map<Integer, String>
,是否可以应用# 2 楼答案
在模板中,您指定
Map
的键为scala.Int
,但您给它一个Map
,其中java.lang.Integer
为键解决方案是将模板中的行更改为