3

我正在通过一个 Java 项目使用 Play 框架,我想将我的模板(Scala 函数)作为参数传递给我的一个 Java 方法。

我想做这样的事情:

public static Result ok(ScalaFunction template, Object obj) {
    // do some work, then :
    return ok(template.render(obj));
}

MyClass.ok(views.html.mytemplate, SomeModel.find.findList());

当然,这是行不通的。我应该views.html.mytemplate是一个类,所以我切换到views.html.mytemplate.classpublic static Result ok(Class template, Object obj)我的方法,但我无法调用render它。

有可能做这样的事情吗?

如果有人知道更好的选择,我想要实现的是返回一个 JSON 表示,obj如果 Accept 标头是“ application/json ”,或者如果 Accept 标头是“ text/ ”,则返回编译的模板(在第一个参数中给出)html ”。

4

1 回答 1

4

假设您的Scala函数接受并返回一个Object,因此类型为,Function1<Object, Object>那么您的 Java 方法应如下所示:

public Result ok(Function1<Object, Object> template, Object obj) {
    // do some work, then:
    return ok(template.render(obj));
}
于 2014-05-03T13:32:51.740 回答