在我的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
。
有没有办法为同一错误添加两个错误字段?
由于
答案 0 :(得分: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');
}