这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 扣丁学堂Java培训之Spring校验框架代码详解

共1条 1/1 1 跳转至

扣丁学堂Java培训之Spring校验框架代码详解

助工
2020-09-27 10:49:41     打赏

  Spring拥有自己的校验框架,使用起来非常的简便。本次主要使用的是继续Validator接口来实现的数据校验。最终配合i18n来实现不同语言版本的校验信息的显示。

  环境说明,sts3.8.2+maven3.3.9+tomcat8.5


  实现步骤:


  1.新增mavenweb项目,在pom中添加依赖


  org.springframework


  spring-webmvc


  4.3.6.RELEASE


  2.在web.xml中配置SpringMVC的配置文件


  springDispatcherServlet


  org.springframework.web.servlet.DispatcherServlet


  1


  springDispatcherServlet


  /


  3.在SpringMVC配置文件WEB-INF/springDispatcherServlet-servlet.xml中设置


  class="org.springframework.context.support.ReloadableResourceBundleMessageSource"


  p:basename="/WEB-INF/msg"/>


  class="org.springframework.web.servlet.view.InternalResourceViewResolver"


  p:prefix="/"p:suffix=".jsp"/>


  4.新增pojo类Student


  packagecom.qfedu.pojo;


  publicclassStudent{


  privateintsid;


  privateStringname;


  privateintage;


  privatedoublescore;


  publicintgetSid(){


  returnsid;


  }


  publicvoidsetSid(intsid){


  this.sid=sid;


  }


  publicStringgetName(){


  returnname;


  }


  publicvoidsetName(Stringname){


  this.name=name;


  }


  publicintgetAge(){


  returnage;


  }


  publicvoidsetAge(intage){


  this.age=age;


  }


  publicdoublegetScore(){


  returnscore;


  }


  publicvoidsetScore(doublescore){


  this.score=score;


  }


  }


  5.新增校验类StudentValidater实现Spring的Validate接口5


  packagecom.qfedu.validate;


  importorg.springframework.validation.Errors;


  importorg.springframework.validation.ValidationUtils;


  importorg.springframework.validation.Validator;


  importcom.qfedu.pojo.Student;


  publicclassStudentValidateimplementsValidator{


  @Override


  publicbooleansupports(Classclazz){


  returnStudent.class.isAssignableFrom(clazz);


  }


  @Override


  publicvoidvalidate(Objecttarget,Errorserrors){


  Studentstu=(Student)target;


  ValidationUtils.rejectIfEmpty(errors,"name","stu.name");


  ValidationUtils.rejectIfEmpty(errors,"age","stu.age");


  ValidationUtils.rejectIfEmpty(errors,"score","stu.score");


  ValidationUtils.rejectIfEmpty(errors,"sid","stu.sid");


  intage=stu.getAge();


  if(age<0||age>200){


  errors.rejectValue("age","stu.age.invalid");


  }


  doublescore=stu.getScore();


  if(score<0||score>100){


  errors.rejectValue("score","stu.score.invalid");


  }


  }


  }


  6.新增控制器类StudentController


  packagecom.qfedu.controller;


  importorg.springframework.stereotype.Controller;


  importorg.springframework.ui.Model;


  importorg.springframework.validation.BindingResult;


  importorg.springframework.web.bind.annotation.GetMapping;


  importorg.springframework.web.bind.annotation.PathVariable;


  importorg.springframework.web.bind.annotation.PostMapping;


  importcom.qfedu.pojo.Student;


  importcom.qfedu.validate.StudentValidate;


  @Controller


  publicclassStudentController{


  //任何请求将都被该请求对应的页面来处理


  @GetMapping("/{view}")


  publicStringgetView(@PathVariableStringview,Modelmodel){


  //在model中添加student对象,用来在表单中显示和处理对象的数据


  model.addAttribute("student",newStudent());


  returnview;


  }


  @PostMapping("/saveStudent")


  publicStringsaveStudent(Studentstudent,BindingResulterrors,Modelmodel){


  StudentValidatesv=newStudentValidate();


  sv.validate(student,errors);


  if(errors.hasErrors()){


  return"saveStudent";


  }


  return"success";


  }


  }


  6.WEB-INF下新增两个msg文件以支持中文(msg_zh_CN.properties)和英文(msg_en_US.properties)的校验,如果有需要还是自行按照规则添加该文件


  #msg_en_US.properties


  stu.name=namemustnotbeempty!


  stu.age=agemustnotbeempty!


  stu.score=scoremustnotbeempty!


  stu.sid=sidmustnotbeempty!


  stu.age.invalid=ageisnotavailable,mustbebetween0-200


  stu.score.invalid=scoreisnotavailable,mustbebetween0-100


  #msg_zh_CN.properties


  #后面的东西全部是上面对应key的中文翻译,自动被转成Unicode编码


  stu.name=\u59D3\u540D\u4E0D\u80FD\u4E3A\u7A7A!


  stu.age=\u5E74\u9F84\u4E0D\u80FD\u4E3A\u7A7A!


  stu.score=\u6210\u7EE9\u4E0D\u80FD\u4E3A\u7A7A!


  stu.sid=\u5B66\u751F\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A!


  stu.age.invalid=\u5E74\u9F84\u5FC5\u987B\u57280-200\u4E4B\u95F4


  stu.score.invalid=\u6210\u7EE9\u5FC5\u987B\u57280-100\u4E4B\u95F4


  7.在webapp下新增saveStudent.jsp页面


  sid:*


  name:*


  age:*


  score:*


  8.在webapp下新增success.jsp


  thisissuccesspage.


  9.整体项目的结构图片


  10.整体项目的运行结果


  a.英文不合法校验


  b.中文不合法校验


  c.校验成功页面


  以上就是关于扣丁学堂Java培训之Spring校验框架代码的详细介绍,最后想要了解更多关于Java发展前景趋势,请关注扣丁学堂Java培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的Java视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的第一套自适应Java在线视频课程系统,让你快速掌握Java从入门到精通开发实战技能。扣丁学堂Java技术交流群:850353792。



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]