排序出错Java_java-如何根据页面上字段的顺序对BindingResult错误的显示进行排序?...

我正在使用jsr303的休眠实现来进行服务器端验证.当Set< ConstraintViolation<>返回后,我立即将错误添加到BindingResult以便在页面上显示.我在一个位置都使用form:errors标签显示错误.错误会以任何随机顺序显示在页面上.有什么办法可以哄骗Spring根据页面上字段的顺序显示错误?

解决方法:

您可以使用自定义比较器对字段错误进行排序:

private static final Comparator FIELD_ORDER_COMPARATOR = new Comparator() {

// Your fields, ordered in the way they appear in the form

private static final List FIELDS_WITH_ORDER = ImmutableList.of("field1", "field2");

@Override

public int compare(FieldError fe1, FieldError fe2) {

String field1 = fe1.getField();

String field2 = fe2.getField();

int field1Index = FIELDS_WITH_ORDER.indexOf(field1);

int field2Index = FIELDS_WITH_ORDER.indexOf(field2);

return NumberUtils.compare(field1Index, field2Index);

}

});

...

List fieldErrors = bindingResult.getFieldErrors();

Collections.sort(fieldErrors, FIELD_ORDER_COMPARATOR);

标签:hibernate,bean-validation,spring,java

来源: https://codeday.me/bug/20191208/2089410.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值