gpt4 book ai didi

javax.validation ORDER of failures-entries 作为验证方法的结果

转载 作者:行者123 更新时间:2023-12-04 05:27:16 24 4
gpt4 key购买 nike

我正在使用 javax.validation 进行 JSR-303 bean 验证。

调用验证方法后,我检查结果并在我的 GUI 中做一些事情(例如突出显示我的表单中的失败字段)。

我的问题:

MyBean.java

public class MyBean {

@Size(min = 1, message = "Please insert title")
private String title;

@Size(min = 1, message = "Please insert author")
private String author;

@Size(min = 1, message = "Please insert publisher")
private String publisher;

// ... something
}

我的验证方法:

Set<ConstraintViolation<MyBean>> failures = this.validator.validate(bean);

之后,我遍历失败对象:

for (ConstraintViolation<MyBean> constraintViolation : failures) {
propertyPath = constraintViolation.getPropertyPath().toString();
if (propertyPath.equals("title")) {
Color bg = new Color(242, 242, 251);
this.txtTitle.setBackground(bg);

}
// some else if for other attributes (for example: author)
// add error to all error messages
errorMessage += constraintViolation.getMessage();
}

现在我的问题是:失败集中这些对象的顺序。这是不正确的。是否有获得正确顺序的解决方案?

感谢大家

最佳答案

Set 不能保证保持其元素有序(HashSet 则不能)。因此,您不应该依赖此顺序,您可能必须测试每个 ConstraintViolation 以便对其应用正确的过程,例如使用 constraintViolation.getPropertyPath()。

但理想情况下,您不必知道正在处理哪种故障,通常您只需要知道它是一个 ConstraintViolation 并对其应用通用方法

关于javax.validation ORDER of failures-entries 作为验证方法的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13048993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com