我想验证另一个表单对象中包含的表单对象。我有这样的事情:
@Controller
public class FormController {
@RequestMapping(method = RequestMethod.POST)
public void process(@ModelAttribute("form") @Valid FormObject formObject,
BindingResult result) {
...
@InitBinder("form")
protected void initBinder(WebDataBinder binder) {
binder.setValidator(customFormValidator);
}
}
public class FormObject {
@Valid
private FormObject2 formObject2;
}
// This is the class that needs to be validated.
public class FormObject2 {
@NotEmpty
private String name;
}
}
我遇到的问题是我希望对象 formObject2 由另一个自定义验证器(例如“customFormValidator2”)验证,但我找不到如何注册它。如果我让它这样,spring 验证器将验证第二种形式。
我已经尝试在 customFormValidator 内部验证第二个表单,但是第二个表单中的错误路径与第一个表单无关,我无法在 jsp 页面中显示错误。
我已经像这样构造了我的表单对象,因为我可能需要在其他表单中使用第二个表单,通过这样做,我使它更加模块化。
我想做的事有可能吗?你有更好的建议吗?