使用Spring验证程序验证嵌套对象的列表?
问题内容:
我想知道如何在Spring MVC应用程序中使用Spring Validator(而非批注)来验证表单中的嵌套对象列表。
class MyForm() {
String myName;
List<TypeA> listObjects;
}
class TypeA() {
String number;
String value;
}
如何创建MyFormValidator来验证listObjects并添加TypeA的数字和值的错误消息。
问题答案:
public class MyFormValidator implements Validator {
@Override
public boolean supports(Class clazz) {
return MyForm.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
MyForm myForm = (MyForm) target;
for (int i = 0; i < myForm.getListObjects().size(); i++) {
TypeA typeA = myForm.getListObjects().get(i);
if(typeAHasAnErrorOnNumber) {
errors.rejectValue("listObjects[" + i + "].number", "your_error_code");
}
...
}
...
}
}
有趣的链接: