我怎样才能在java中使用play框架2 JsMessages插件的过滤功能?

时间:2015-01-17 23:59:44

标签: java scala playframework playframework-2.0

如何在java中使用play framework 2 JsMessages插件的过滤功能? 您可以在julienrf/play-jsmessages

找到插件代码和文档

我已阅读scala示例:

val messages = JsMessages.filtering(_.startsWith("error."))

我猜测java版本应该是这样的:

final static jsmessages.JsMessages messages = JsMessages.filtering(play.Play.application(),/*a nice filter go there*/);

java示例应该在与jsMessage对象生成相对应的部分进行更新,但我无法猜测如何传递正确的过滤器函数。这是java示例:java sample code

这是我的代码的jsMessages部分。在评论中,您无需过滤即可获得正确的实现:

//final static jsmessages.JsMessages messages = JsMessages.create(play.Play.application());
final static jsmessages.JsMessages messages = JsMessages.filtering(play.Play.application(),---A play.libs.F.Function<String,Boolean>---);

public static Result jsMessages(String code) {
    return ok(messages.generate("Messages", Lang.forCode(code))).as("application/javascript");
}

所以我的问题是创建一个play.libs接口F.Function。

1 个答案:

答案 0 :(得分:1)

以下是jsMessages插件中过滤实现的java代码:

final static F.Function<String, Boolean> filter = new F.Function<String, Boolean>() {
    @Override
    public Boolean apply(String key) {
        try {
            return key.startsWith("js.");
        } catch (Throwable throwable) {
            return false;
        }
    }
};
final static jsmessages.JsMessages messages = JsMessages.filtering( play.Play.application(),filter);

通过查看它的scala版本开始哭泣:

val messages = JsMessages.filtering(_.startsWith("error."))