弹簧将两个验证注释组合在一个中
2022-09-03 06:20:38
我正在使用Spring+Hibernate+Spring-MVC。
我想定义一个自定义约束,将另外两个预定义的验证注释组合在一起:如下所示:@NotNull @Size
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@NotNull
@Size(min=4)
public @interface JPasswordConstraint {
} // this is not correct. It's just a suggestion.
我想在我的表单模型中使用此注释。
public class ChangePasswordForm {
@NotNull
private String currentPass;
@JPasswordConstraint
private String newPass;
@JPasswordConstraint
private String newPassConfirm;
}
用户控制器.java
@RequestMapping(value = "/pass", method = RequestMethod.POST)
public String pass2(Model model, @Valid @ModelAttribute("changePasswordForm") ChangePasswordForm form, BindingResult result) {
model.addAttribute("changePasswordForm", form);
try {
userService.changePassword(form);
} catch (Exception ex) {
result.rejectValue(null, "error.objec", ex.getMessage());
System.out.println(result);
}
if (!result.hasErrors()) {
model.addAttribute("successMessage", "password changed successfully!");
}
return "user/pass";
}
但它不起作用。它接受少于 4 个字符的密码。
我该如何解决这个问题?