我正在开发spring mvc应用程序,我应该基于Spring MVC验证器进行验证.我第一步为我添加了类和设置控制器的注释,它工作正常.现在我需要实现自定义验证器来执行复杂的逻辑,但我想使用现有的注释,只需添加额外的检查.
我的用户类:
public class User
{
@NotEmpty
private String name;
@NotEmpty
private String login; // should be unique
}
Run Code Online (Sandbox Code Playgroud)
我的验证员:
@Component
public class UserValidator implements Validator
{
@Autowired
private UserDAO userDAO;
@Override
public boolean supports(Class<?> clazz)
{
return User.class.equals(clazz) || UsersForm.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors)
{
/*
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "NotEmpty.user");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "login", "NotEmpty.user");
*/
User user = (User) target;
if (userDAO.getUserByLogin(user.getLogin()) != null) {
errors.rejectValue("login", "NonUniq.user");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的控制器:
@Controller
public class UserController …Run Code Online (Sandbox Code Playgroud)