Edd*_*ark 1 custom-validators bean-validation spring-boot
我正在开发一个 Spring Boot 应用程序,并且有一个密码重置表单。我正在使用这样的类来验证输入。
public class PasswordResetForm {
@NotEmpty
@Size(min=6, message="must be at least 6 characters")
private String password;
private String passwordConfirm;
//Getter and Setters
}
Run Code Online (Sandbox Code Playgroud)
因此,我现在想要验证字段“passwordConfirm”和“password”是否相等,我进行了全面搜索,但找不到如何在这种情况下添加自定义验证。那么,如何为其他字段添加自定义验证呢?
我的控制器的动作看起来像这样
@RequestMapping(value = "/password-change/{id}-{tokenNumber}", method = RequestMethod.POST)
public String changePassword(@PathVariable String id, @PathVariable String tokenNumber, @Valid PasswordResetForm form, BindingResult formBinding, Model model) {
if (formBinding.hasErrors())
return "change-password";
//Other stuff
}
Run Code Online (Sandbox Code Playgroud)
或者如果您只想验证这种情况(passwordConfirm 和密码相等)。
您可以使用@AssertTrue。
@AssertTrue
public boolean isDifferentPass() {
return !password.equals(passwordConfirm);
}
Run Code Online (Sandbox Code Playgroud)
如果这两个字段相同,那么您的控制器的 BindingResult 有错误
| 归档时间: |
|
| 查看次数: |
5450 次 |
| 最近记录: |