SpringMVC 之 Validation介绍—— 使用Validator接口进行验证
来源:互联网 发布:知乎中国人到底有多穷 编辑:程序博客网 时间:2024/05/21 12:40
/*--------------------------------Java实体类 -----------------------------*/
public class Sys_user { private String id; //主键 private String usercode; //用户名 private String name; //姓名 private String pwd; //密码 private String email; //邮箱 private String tel; //电话 private String org_id; //企业id private Integer role_id; //角色ID private String is_audit; //是否审核 private Date reg_date; //注册时间 private Date audit_date; //审核时间 //辅助字段 企业名称 private String company_name;//企业名称 private String company_address;//企业地址 private String againpwd; //确认密码 private String role_name; //角色名称 private String is_admin; //是否管理员 private Integer declare_num;//申报产品数 public String getCompany_address() { return company_address; } public void setCompany_address(String company_address) { this.company_address = company_address; } public String getAgainpwd() { return againpwd; } public void setAgainpwd(String againpwd) { this.againpwd = againpwd; } public String getCompany_name() { return company_name; } public void setCompany_name(String company_name) { this.company_name = company_name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsercode() { return usercode; } public void setUsercode(String usercode) { this.usercode = usercode; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String getOrg_id() { return org_id; } public void setOrg_id(String org_id) { this.org_id = org_id; } public Integer getRole_id() { return role_id; } public void setRole_id(Integer role_id) { this.role_id = role_id; } public String getRole_name() { return role_name; } public void setRole_name(String role_name) { this.role_name = role_name; } public String getIs_admin() { return is_admin; } public void setIs_admin(String is_admin) { this.is_admin = is_admin; } public String getIs_audit() { return is_audit; } public void setIs_audit(String is_audit) { this.is_audit = is_audit; } public Integer getDeclare_num() { return declare_num; } public void setDeclare_num(Integer declare_num) { this.declare_num = declare_num; } public Date getReg_date() { return reg_date; } public void setReg_date(Date reg_date) { this.reg_date = reg_date; } public Date getAudit_date() { return audit_date; } public void setAudit_date(Date audit_date) { this.audit_date = audit_date; } }
/*--------------------------------Java后台工具类代码 -----------------------------*/
@Componentpublic class SysUserValidat implements Validator{/************************************************************************** 调用service 如果未使用到spring管理的service层则这部分可省略***************************************************************************/ @Autowired private UserService userService; private static SysUserValidat sysUserValidat ; //关键点1 静态初使化 一个工具类 这样是为了在spring初使化之前 public void setUserService(UserService userService) { this.userService = userService; } public void setXhOrgService(XhOrgService xhorgService) { this.xhorgService = xhorgService; } //关键二 通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 @PostConstruct public void init() { sysUserValidat = this; sysUserValidat.userService = this.userService; // 初使化时将已静态化的testService实例化 }// 这样下面的代码中就可以通过 testUtils.testService 来调用service处理/************************************************************************/ public boolean supports(Class<?> clazz) { return Sys_user.class.equals(clazz); } public void validate(Object obj, Errors errors) { Sys_user sys_user = (Sys_user)obj; //此处用到spring管理的service层。。。看需求,如果不需要用到service,就不需要写。 Sys_user user=sysUserValidat.userService.queryUserByCode(sys_user.getUsercode()); //用户名 if(StringUtils.isEmpty(sys_user.getUsercode())){ errors.rejectValue("usercode","usercode.null"); }else if(sys_user.getUsercode().length() < 5){ errors.rejectValue("usercode", "usercode.short"); }else if(sys_user.getUsercode().length() > 32){ errors.rejectValue("usercode", "usercode.long"); }else if(user!=null&&sys_user.getUsercode().equals(user.getUsercode())){ errors.rejectValue("usercode", "usercode.repeat"); } //姓名 if(StringUtils.isEmpty(sys_user.getName())){ errors.rejectValue("name","name.null"); }else if(sys_user.getName().length()>16){ errors.rejectValue("name","name.long"); } //密码 if(StringUtils.isEmpty(sys_user.getPwd())){ errors.rejectValue("pwd","pwd.null"); }else if(sys_user.getPwd().length() <6){ errors.rejectValue("pwd","pwd.short"); }else if(sys_user.getPwd().length() >16){ errors.rejectValue("pwd", "pwd.long"); } //确认密码 if(StringUtils.isEmpty(sys_user.getAgainpwd())){ errors.rejectValue("againpwd", "againpwd.null"); } else if(!(sys_user.getAgainpwd().equals(sys_user.getPwd()))){ errors.rejectValue("againpwd", "againpwd.inconformity"); } //邮箱 String pattern = "\\w[-\\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\\.)+[A-Za-z]{2,14}"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(sys_user.getEmail()); if(!(StringUtils.isEmpty(sys_user.getEmail())) && m.matches()==false){ errors.rejectValue("email","email.error"); }else if(sys_user.getEmail().length()>32){ errors.rejectValue("email","email.long"); } //验证手机号 String tel_pattern = "(13\\d|14[57]|15[^4,\\D]|17[13678]|18\\d)\\d{8}|170[0589]\\d{7}"; Pattern telr = Pattern.compile(tel_pattern); Matcher telm = telr.matcher(sys_user.getTel()); if(!(StringUtils.isEmpty(sys_user.getTel())) && telm.matches()==false){ errors.rejectValue("tel","tel.error"); } //企业地址验证 if(sys_user.getCompany_address().length()>128){ errors.rejectValue("company_address","company_address.long"); } } }
/*-----------------------------------------Java后台代码 --------------------------------------*/
@Controllerpublic class RegController { @InitBinder public void initBinder(WebDataBinder binder) { binder.setValidator(new SysUserValidat()); } @RequestMapping(value = "/reg",method = RequestMethod.GET) public String index(Model model, HttpServletRequest request) throws ParseException { model.addAttribute(new Sys_user()); return "/www/reg"; } @RequestMapping(value = "/reg/register",method = RequestMethod.POST) public String index(@Validated Sys_user sys_user, BindingResult br,Model model, HttpServletRequest request) throws ParseException { if(br.hasErrors()) { //出现错误 return "/www/reg"; }else{ //未出现错误正常注册 。。。。。。 return "redirect:/ucenter/main"; } } }
/*---------------------------messages_zh_CN.properties------------------------*/
usercode.null.usercode=\u002a\u0009\u4f01\u4e1a\u540d\u79f0\u4e0d\u80fd\u4e3a\u7a7a usercode.short.usercode=\u002a\u0009\u4f01\u4e1a\u540d\u79f0\u4e0d\u80fd\u5c11\u4e8e\u0035\u4f4dusercode.repeat.usercode=\u002a\u0009\u4f01\u4e1a\u5df2\u7ecf\u6ce8\u518cpwd.null.pwd=\u002a\u0009\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7apwd.long.pwd=\u002a\u0009\u0036\u002d\u0031\u0036\u4f4d\u6570\u5b57\u6216\u5b57\u6bcd\u7ec4\u6210pwd.short.pwd=\u002a\u0009\u0036\u002d\u0031\u0036\u4f4d\u6570\u5b57\u6216\u5b57\u6bcd\u7ec4\u6210againpwd.inconformity.againpwd=\u002a\u0009\u4e24\u6b21\u5bc6\u7801\u4e0d\u4e00\u81f4againpwd.null.againpwd=\u002a\u0009\u786e\u8ba4\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7aemail.error.email=\u002a\u0009\u90ae\u7bb1\u683c\u5f0f\u9519\u8beftel.error.tel=\u002a\u0009\u624b\u673a\u53f7\u683c\u5f0f\u9519\u8befcompany_name.null.company_name=\u002a\u0009\u4f01\u4e1a\u540d\u79f0\u4e0d\u80fd\u4e3a\u7a7acompany_name.repeat.company_name=\u002a\u0009\u8be5\u4f01\u4e1a\u5df2\u7ecf\u6ce8\u518cname.null.name=\u002a\u0009\u59d3\u540d\u4e0d\u80fd\u4e3a\u7a7ausercode.long.usercode=\u002a\u0009\u4f01\u4e1a\u540d\u79f0\u8fc7\u957fname.long.name=\u002a\u0009\u59d3\u540d\u8fc7\u957femail.long.email=\u002a\u0009\u90ae\u7bb1\u8fc7\u957fcompany_address.long.company_address=\u002a\u0009\u4f01\u4e1a\u5730\u5740\u8fc7\u957f
/*------------------------applicationContext.xml配置读取properties----------------------*/
<!-- 配置properties --><bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename"> <value>messages</value> </property></bean>
/*-----------------------------------------前台代码-------------------------------------------*/
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@taglib prefix="sf" uri="http://www.springframework.org/tags/form"%><sf:form class="m-t" role="form" modelAttribute="sys_user" action="reg/register" method="post"> <div class="form-group"> <sf:input path="usercode" class="form-control" type="text" placeholder="企业名称"></sf:input> <div style="color:red;"><sf:errors path="usercode"></sf:errors></div> </div> <div class="form-group"> <sf:input path="name" class="form-control" type="text" placeholder="姓名"></sf:input> <div style="color:red;"><sf:errors path="name"></sf:errors></div> </div> <div class="form-group"> <sf:input path="pwd" class="form-control" type="password" placeholder="密码"></sf:input> <div style="color:red;"><sf:errors path="pwd"></sf:errors></div> </div> <div class="form-group"> <sf:input path="againpwd" class="form-control" type="password" placeholder="确认密码"></sf:input> <div style="color:red;"><sf:errors path="againpwd"></sf:errors></div> </div> <div class="form-group"> <sf:input path="email" class="form-control" type="text" placeholder="邮箱"></sf:input> <div style="color:red;"><sf:errors path="email"></sf:errors></div> </div> <div class="form-group"> <sf:input path="tel" class="form-control" type="text" placeholder="手机号"></sf:input> <div style="color:red;"><sf:errors path="tel"></sf:errors></div> </div> <div class="form-group"> <sf:input path="company_address" class="form-control" type="text" placeholder="企业地址"></sf:input> <div style="color:red;"><sf:errors path="company_address"></sf:errors></div> </div> <button type="submit" class="btn btn-primary block full-width m-b">注册</button> <p class="text-muted text-center"><small>已经有一个账户?</small></p> <a class="btn btn-sm btn-white btn-block" href="logout">登录</a> </sf:form>
阅读全文
0 0
- SpringMVC 之 Validation介绍—— 使用Validator接口进行验证
- SpringMVC学习之验证——validator
- SpringMVC使用hibrenate validation进行验证
- springmvc 使用validation验证!
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- SpringMVC介绍之Validation
- Spring3.1.0实现原理分析(十八).MVC处理器和处理器适配器
- 一个通用下拉刷新RecyclerRefreshLayout控件
- 数据库-SQL语言的功能
- SpringBoot初始教程之项目结构(一)
- java 将jsonarray 转化为对应键值的jsonobject
- SpringMVC 之 Validation介绍—— 使用Validator接口进行验证
- HDU
- extern"C"到底做了什么,起流什么作用
- linux虚拟机网络配置
- .net 开发日志
- 计算机网络基础知识——(二)
- Android手机中UID、PID作用及区别
- JAVA集合类汇总
- Android listview的item中button的点击事件 item和button 可同时点击