1

私は Play 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; 

Play フレームワークで Integer -> String マッピングを定義することは可能ですか?もしそうなら、どうすればそれを達成できますか?

編集:
コントローラーのコードを次のように変更すると、例外が発生します。

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

テンプレートで次のことを行います。

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

2 に答える 2

2

テンプレートでは、Mapのキーがscala.Ints であることを指定しますがMapjava.lang.Integers をキーとして指定します。

解決策は、テンプレートの行を次のように変更することです

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

あなたのコードでは、生成されたrenderメソッドはMap<Object, String>. 次に、そのようなマップを提供できます。

Java から Scala (および Scala から Java) への自動変換ヘルパーがあります。Map<Integer, String>この場合、メソッドに a を含めることを許可する場合に適用できるかどうかはわかりませんrender

于 2013-04-09T14:11:59.460 に答える