📄 registervalidator.java
字号:
package onlyfun.caterpillar.web;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
//Validator接口的实现对象可以帮助基本的服务器端数据验证工作,可以设计一个通用的Validator,
//将之作为Bean注入给需要进行表单验证的其他Bean对象,Validator有两个必须实现的方法...
public class RegisterValidator implements Validator {
//supports()方法回传一个boolean值,表示是否支持对所传入的对象进行验证,只有在传回true情况下,
//才会使用validate()方法进行验证工作...
public boolean supports(Class clazz) {
return clazz.equals(RegisterForm.class);
}
//在validate()方法的参数中,Object表示传入的表单对象,可以对它进行一些验证工作,如果有错误的话,
//可以使用Errors的reject()或rejectValue()等方法加入错误消息,在后续的处理中,
//若errors对象中包括错误消息,会回到getViewPage()所设置的页面/也就是register.jsp页面...
//之后也会处理为绑定消息(其实也就是我们设置的错误消息),并在标签上输出
public void validate(Object obj, Errors errors) {
RegisterForm form = (RegisterForm) obj;
if (!validateEmail(form.getEmail())) {
//reuectValue()方法中,参数1:为表单物件属性,参数2:指定资源档案中的键(key),
//参数3:指定资源档案中的参数,参数4:预设讯息则是使用于找不到资源档案时,所要呈现的预设讯息...
errors.rejectValue("email", "invalid_email", null, "邮件格式不正确");
}
if (form.getPasswd().length() < 6 || form.getPasswd().length() > 16) {
errors.rejectValue("passwd", "less-or-over", null, "密码长度必须是6到16位的字符");
}
if (!form.getPasswd().equals(form.getPasswd2())) {
errors.rejectValue("passwd", "not-equal", null, "两次输入的密码不符");
}
}
private boolean validateEmail(String email) {
return email.matches("^[_a-z0-9-]+([.]"+ "[_a-z0-9-]+)*@[a-z0-9-]+([.][a-z0-9-]+)*$");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -