我正在尝试更改 Spring 中约束验证器的默认消息。
我尝试根据验证错误添加新消息,如下所示:
context.buildConstraintViolationWithTemplate("My custom message").addConstraintViolation();
Run Code Online (Sandbox Code Playgroud)
对于每种情况。
@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;
}
Run Code Online (Sandbox Code Playgroud)
但这是添加一条新消息,而不是替换约束中的默认消息,因此当我在表单页面中显示错误时,它会显示默认消息和我添加的消息,而不是仅显示我动态添加的消息。
小智 6
这段代码应该完成以下工作:
context.disableDefaultConstraintViolation()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3442 次 |
| 最近记录: |