java - Play-java 2.5.9 form.errorsAsJson() 总是返回英文错误信息

标签 java playframework

我是 play 框架的新手,我正在使用 play java 2.5.9 我正在尝试获取表单错误并使用 ajax 呈现它(这就是我使用 form.errorsAsJson() 的原因),错误应该以阿拉伯语显示

我试过像这样在我的 conf/messages.ar 中放入错误消息:

#bean validation messages
validation.required=لابد من إدخال قيمة في هذا الحقل
error.required=لابد من إدخال قيمة في هذا الحقل

我还尝试将以下内容放入 conf/ValidationMessages_ar.properties 中:

error.required=\u0627\u0644\u062D\u0642\u0644\u0645\u0637\u0644\u0648\u0628 validation.required=\u0644\u0627\u0628\u062F\u0645\u0646\u0625\u062F\u062E\u0627\u0644\u0642\u064A\u0645\u0629\u0641\u064A\u0647\u06270\u06270\u0644\u062D\u0642\u0644 这两条消息都没有呈现,但我总是得到:

This field is required

我的 Action 代码如下:

@Transactional
public Result addUOMType(){
    ObjectNode result = Json.newObject();
    Form<UnitOfMeasureType> uomTypeForm = formFactory.form(UnitOfMeasureType.class);
    try{
        uomTypeForm = uomTypeForm.bindFromRequest();
        System.out.println(Http.Context.current()  != null ? Http.Context.current().lang() : "");
        if(uomTypeForm.hasErrors()){
            result.put("status", "error");
            result.put("errors", uomTypeForm.errorsAsJson());
            return ok(result);
        }
        UnitOfMeasureType uomType = uomTypeForm.get();
        uomType.save();
        result.put("status", "success");
        result.put("message", Messages.get("response.success"));
    }catch (Exception exp){
        result.put("status", "error");
        result.put("errors", Json.toJson(exp.getMessage()));
    }

    return ok(result);
}

System.out.println 打印: 朗(ar)

最佳答案

Form.errorsAsJson 有一个 overloaded version taking Lang parameter :

public com.fasterxml.jackson.databind.JsonNode errorsAsJson(Lang lang)
// Returns the form errors serialized as Json using the given Lang.

所以你可以这样做:

result.put("errors", uomTypeForm.errorsAsJson(lang()));

只要您在 conf/messages.ar 中定义它们,它就会返回正确本地化的消息。我刚刚在我的项目中尝试过这个并且运行良好。

方法 lang()defined in play.mvc.Controller .

关于java - Play-java 2.5.9 form.errorsAsJson() 总是返回英文错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40688015/

相关文章:

java - 转换为 JSon 或任何 java map 类型

java - SQL 查询 1 :n relation, 查找具有两个匹配子项的所有实体

java - Spring Integration 中的外部消息传递

scala - 如何在 Scala Play 框架中进行 Twitter 反向身份验证?

java - 如何防止在 Android 应用程序中创建多个数据库?

java - 在现有的 JPanels 上绘制 JLayeredPane

json - Play [Scala] : How to flatten a JSON object

java - 在 Play 2.0 中如何说 @ManyToOne 是 @Required?

javascript - 在 Play 2.3.x 构建外部 Webjar 源时加速 Javascript 丑化

java - 无法连接到 grpc 服务器并获取 'First received frame was not SETTINGS'