我有一个帐户类,在其中我使用如下符号:
@NotNull
private String name;
在account中有许多字段,我分别以两种形式使用它们。问题是,由于我的第一张表格不包含
private String name;
当我提交表单时,验证检查失败,因为正在检查实际表单中没有的字段。
从本质上讲,验证总是会失败,因为变量在同一个类中,但没有以这种特定的形式使用
为了解决这个问题,我必须使用Spring Validator类吗?
谢谢。
我认为在使用验证注释时可能无法解决此类问题。但你可以试试这些:
-
为两个窗体创建两个自定义类,只为其中一个窗体验证名称,而不对另一个窗体进行验证。
-
此外,您还可以尝试在控制器方法中手动验证您自己的字段。Autowire验证器类,并在方法内部进行验证。
@Autowired Validator validator; public methodA(Model model, @ModelAttribute("modelA") ModelA modelA, BindingResult result){ validator.validate(modelA, result); if (result.hasErrors()){ // do something } else { // do something else } }