替换约束验证器的默认消息

时间:2019-01-23 10:44:19

标签: java spring

我正在尝试在Spring中更改约束验证器的默认消息。

我尝试根据验证错误来添加新消息,如下所示:

context.buildConstraintViolationWithTemplate("My custom message").addConstraintViolation();

对于每种情况。

@Override
public boolean isValid(MyData data, ConstraintValidatorContext ctx) {
    boolean valid = false;
    if (!StringUtils.isEmpty(data.getDocumentType())) {
        if (data.getDocumentType().equalsIgnoreCase("N")) {
            valid = isValidTypeN(data.getDocument());
            if(!valid) context.buildConstraintViolationWithTemplate("My custom message for type N").addConstraintViolation();
        } else if(data.getDocumentType.equalsIgnoreCase("R")){
            valid = isValidTypeR(data.getDocument());
            if(!valid) context.buildConstraintViolationWithTemplate("My custom message for type R").addConstraintViolation();
        } else if(data.getDocumentType.equalsIgnoreCase("P")) {
            valid = isValidTypeP(data.getDocument());
            if(!valid) context.buildConstraintViolationWithTemplate("My custom message for type P").addConstraintViolation();
        }
    }       
    return valid;
}

但这会添加一条新消息,而不是替换“约束”中的默认消息,因此当我在表单页面中显示错误时,它同时显示了默认值和我添加的错误,而不是仅动态添加的错误。

1 个答案:

答案 0 :(得分:1)

此代码应能完成工作:

let array1 = [1, 2, 3];
let array2 = [4, 5, 6],
let array3 = [7, 8, 9];
let allArrays = [];
allArrays.concat(array1 , array2 , array3);
console.log(allArrays ); // [1,2,3,4,5,6,7,8,9]