关于validator验证器操作

xiaoxiao2021-02-28  85

关于validator验证器操作如以下: 在springServlet.xml配置如下操作 <!-- 启动注解驱动 -->  <mvc:annotation-driven validator="validator"/> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean "> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" />  </bean> --------------------------------------------------------------------------------- 第一种: 这种更好用***** 在实体类的属性中做如下操作: public class User implements Serializable{ //利用MVC注解对数据进行正则验证 @Pattern(regexp="\\w{6,8}",message="用户名不能为空,且必须为6-8位") private String registName; @Pattern(regexp="[0-9a-zA-Z]{6,8}",message="密码不能为空且必须为数字或英文,6-8位") private String registPwd; @Pattern(regexp="^(13|15|18)[0-9]{9}$",message="电话号码不能为空且只能是13、15、18开始的手机号码") private String registPhone; @Email(message="邮箱必须符合邮箱格式要求") @NotEmpty(message="邮箱不能为空") private String registEmail; @NotEmpty(message="性别不能为空") private String registGender; } 在controller中做如下操作 @RequestMapping(path="/testRegist",method=RequestMethod.POST) public String  regist(@Valid TestRegistBean regist , BindingResult result , ModelMap model){ if (result.hasErrors()) { System.out.println(result.getFieldErrorCount()); List<FieldError> list = result.getFieldErrors(); //mvc自动将对象装进了request.setAttribute("regist", regist),在页面直接用EL表达式获取属性值即可 // model.addAttribute("regist", regist); for (FieldError fieldError : list) { System.out.println(fieldError.getField()); System.out.println(fieldError.getDefaultMessage()); //将对象字段属性和字段错误信息存入model中,以便在页面用EL获取提示信息 model.addAttribute(fieldError.getField(), fieldError.getDefaultMessage()); } return "testRegist"; } return "success"; }  在jsp中做如下操作 <form action="testRegist.do" method="post">     <!-- value="${testRegistBean.registName }:将已经输入在文本框里的值保留 -->     用户名:<input type="text" name="registName" value="${testRegistBean.registName }"/>     <!-- ${registName }:获取验证不通过时的错误提示信息 -->     <span style="color: red">${registName }</span><br/>     密码<input type="password" name="registPwd" value="${testRegistBean.registPwd }"/>     <span style="color: red">${registPwd }</span><br/>     电话:<input type="text" name="registPhone" value="${testRegistBean.registPhone }"/>     <span style="color: red">${registPhone }</span><br/>     邮箱:<input type="text" name="registEmail" value="${testRegistBean.registEmail }"/>     <span style="color: red">${registEmail }</span><br/>     性别:<input type="text" name="registGender" value="${testRegistBean.registGender }"/>     <span style="color: red">${registGender }</span><br/>     <input type="submit" value="提交"/>     </form> --------------------------------------------------------------------------------- 第二种: 在实体类的属性中做如下操作: public class UserBean { @NotEmpty(message="用户名不能为空") @Length(max=8,min=4,message="长度在4-8位之间") private String username; @NotEmpty(message="密码不能为空") private String password; } 在controller层做如下操作 @RequestMapping(path="/login",method=RequestMethod.POST) public ModelAndView login(@Valid UserBean user , BindingResult result){ System.out.println(user.getUsername()+" "+user.getPassword()); ModelAndView mav=new ModelAndView(); if(result.hasErrors()){ mav.setViewName("login"); return mav; } mav.setViewName("main"); mav.addObject("userName",user.getUsername()); return mav; } 在jsp页面做如下操作 <%@ taglib prefix="spring" uri="http://www.springframework.org/tags/form"%> <!-- spring 标签 --> <spring:form action="login.do" method="post" commandName="userBean"> name:<input type="text" name="username" value="${user.username }"/> <!-- 获取相应字段错误提示信息 --> <spring:errors delimiter="," path="username"></spring:errors><br /> pwd:<input type="password" name="password"  value="${user.password }"/> <!-- 获取相应字段错误提示信息 --> <spring:errors delimiter="," path="password"></spring:errors><br />  <input type="submit"> </spring:form> ---------------------------------------------------------------------------------
转载请注明原文地址: https://www.6miu.com/read-39984.html

最新回复(0)