如何在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。
答案 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."))