我有一个帐户类,我使用符号如下:
@NotNull
private String name;
在帐户中有很多字段,我以两种形式独立使用。问题是因为我的第一个表格不包含
private String name;
当我提交表单时,验证检查失败,因为正在检查实际表单中的字段。
基本上,验证将始终失败,因为变量属于同一个类但未以此特定形式使用。
要解决这个问题,我必须使用Spring Validator类吗?
谢谢。
答案 0 :(得分:0)
我认为在进行验证注释时,您可能无法克服此类问题。但你可以试试这些:
为两个表单创建两个自定义类,并为其中一个表单验证名称,而不对其他表单进行验证。
您还可以尝试在控制器方法中手动验证自己的字段。自动验证验证器类,并在方法内部进行验证。
@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
}
}