我一直在阅读有关类验证测试的Hibernate文档,但我没有找到任何解决我的“问题”的方法。我想测试我的自定义验证器。例如,假设我有以下类:
public class User {
@NotEmpty(message = "{username.notSpecified}")
private String username;
@NotEmpty
@Size(min = 6, message = "{password.tooShort")
private String password;
@NotEmpty(message = "{city.notSpecified}")
private String city;
/* getters & setters omitted */
}
我想要检查每个用户是否位于巴塞罗那城。为此,我将编写自定义的用户验证器实现如下:
public class UserValidator implements Validator {
@Autowired
private Validator validator;
@Override
public boolean supports(Class<?> clazz) {
return User.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
validator.validate(target,errors);
User user = (User) target;
if(!(user.getCity().equals("Barcelona"))){
errors.rejectValue("city", "city.notValid", "Invalid city");
}
}
}
我不知道如何使用此自定义验证器,而不是提供在示例中仅检查注释字段约束而不是更多的“业务逻辑”约束的默认验证器。 有关此问题的示例或提示吗?
谢谢!