有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

播放框架模板中的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])

共 (2) 个答案

  1. # 1 楼答案

    在代码中,生成的render方法接受Map<Object, String>。然后,你可以提供这样一张地图

    有从Java到Scala(以及从Scala到Java)的自动转换帮助程序。我不知道如果这个例子允许你在render方法中有一个Map<Integer, String>,是否可以应用

  2. # 2 楼答案

    在模板中,您指定Map的键为scala.Int,但您给它一个Map,其中java.lang.Integer为键

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

    @(map: Map[Integer, String])