我在Java中有一个类,正在按照以下代码使用javax.validation进行验证:

    ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
    Validator validator = validatorFactory.getValidator();
    Set<ConstraintViolation<ApplicationRequest>> validationErrors = validator.validate(request);

    for (ConstraintViolation<MyObject> valErrors : validationErrors) {
        errors.add(valErrors.getPropertyPath() + " " + valErrors.getMessage() + ". ");
    }


现在,如果我在西班牙服务器上执行它,则错误消息将以西班牙语显示。但是,当我在测试服务器(安装在英语环境中)中执行它时,消息以英语显示。我怎么能告诉javax验证使用西班牙语的语言环境。可能吗?

最佳答案

启动应用程序时,您可以设置默认语言环境:
how do I set the default locale for my JVM?

如果您使用的是应用服务器,则只需查看文档,了解如何执行此操作-通常需要进行配置,例如对于JBoss,您需要在run.conf的JAVA_OPTS部分添加-Duser.language = en。

10-08 09:39