博客專欄

        EEPW首頁 > 博客 > Spring校驗框架代碼詳解

        Spring校驗框架代碼詳解

        發布人:only1 時間:2020-09-27 來源:工程師 發布文章

          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。

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞:

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 台东市| 开封县| 民勤县| 宜昌市| 泰宁县| 罗源县| 阿合奇县| 南丹县| 黑河市| 澎湖县| 灌南县| 兴文县| 喜德县| 香河县| 荥阳市| 台前县| 盐源县| 信宜市| 噶尔县| 怀集县| 建始县| 潢川县| 合肥市| 开鲁县| 天镇县| 乐至县| 云安县| 绥芬河市| 屯门区| 宁远县| 隆德县| 闵行区| 墨竹工卡县| 上犹县| 敦化市| 钟山县| 元谋县| 邯郸县| 赤峰市| 六安市| 十堰市|