4

在我的 bean 中,我有一个列表

List<SomeClass> values = new ArrayList<SomeClass>();

SomeClass{
 int a;
 int b;
 int c;
}

我的验证码 -

int i =0
for(SomeClass entry: values){
  if(entry.getA() < 0 && entry.getB() < 0 && entry.getC() > 0){
       bindingResult.addError(newFieldError("bean", "values[" + i"].a", values.get(i).getA(),false,new String []{"error.code"}, null, null));
  }
}

error.code映射到字符串“如果 C 大于零,则 A 和 B 必须大于零

问题是我想将错误代码映射到values[i].a以及values[i].b以便在 UI 上突出显示这两个字段。

构造FieldError函数接受String field和不接受String [] fields

有没有办法为同一个错误添加两个错误字段?

谢谢

4

1 回答 1

0

一旦您检测到要显示验证消息并突出显示多个字段的条件,您可以使用以下代码显示常见/全局错误消息:

if ("your error condition"){
    errors.reject("your.error.code");
}

然后使用与应突出显示的字段相对应的布尔标志更新模型。

model.addAttribute("xFieldHighlighted", true);
model.addAttribute("yFieldHighlighted", true);

然后使用 JavaScript 突出显示这些文件。jQuery 示例如下:

var xFieldHighlighted = '${xFieldHighlighted}';
var yFieldHighlighted = '${yFieldHighlighted}';

if (xFieldHighlighted == 'true'){
    $('#xFieldID').addClass('cssError');
}

if (yFieldHighlighted == 'true'){
    $('#yFieldID').addClass('cssError');
}
于 2015-04-29T09:42:50.127 回答