繁体   English   中英

如何在Java中使用Play Framework 2 JsMessages插件的过滤功能?

[英]How can I use in java the filtering function of the play framework 2 JsMessages plugin?

如何在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示例代码

这是我的代码的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。

这是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."))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM