ในอนุกรม (4) และ (5) เราแสดงวิธีการผูกข้อมูลและวิธีการตรวจสอบความถูกต้องของข้อมูลที่เราได้รับหลังจากข้อมูลที่มีผลผูกพัน นี่คือสิ่งที่เราจะพูดถึงในบทความนี้ -> การตรวจสอบข้อมูล
ที่นี่เราใช้ Hibernate-Validator สำหรับการตรวจสอบ Hibernate-Validator ใช้กรอบการตรวจสอบ JSR-303 เพื่อสนับสนุนการตรวจสอบรูปแบบคำอธิบายประกอบ ก่อนอื่นเราต้องดาวน์โหลดแพ็คเกจ JAR ที่จำเป็นที่ http://hibernate.org/validator/ ที่นี่เราใช้ 4.3.1.Final เป็นการสาธิต หลังจากการบีบอัดให้เพิ่มสามแพ็คเกจ Hibernate-Validator-4.3.1.final.jar, Jboss-Logging-3.1.0.jar, การตรวจสอบความถูกต้อง-api-1.0.0.ga.jar ไปยังโครงการ
กำหนดค่าไฟล์ SpringServlet-Config.xml ในโครงการก่อนหน้าดังนี้:
<!-รองรับการแมปคำอธิบายประกอบเริ่มต้น-> <MVC: Validator-Driven-Driven Drividator = "Validator" Conversion-Service = "การแปลง-บริการ" /> <bean id = "validator"> <property name = "providerClass" ค่า org.hibernate.validator.hibernataTiTaTiated classpath-> <property name = "ValidationMessageSource" ref = "ValidateMessagesource"/> </epean> <bean id = "การแปลง-บริการ"/> <bean id = "ValidateMessagesOrce"> <property name = "basename" value = "classPath name = "cacheseconds" value = "120"/> </ebean>
ClassPath: ValidateMessages ใน <property name = "basename" value = "classpath: validateMessages"/> เป็นไฟล์ที่ข้อความการตรวจสอบคำอธิบายประกอบอยู่และเราจำเป็นต้องเพิ่มในโฟลเดอร์ทรัพยากร
เพิ่มเนื้อหา ValidateController.java ในแพ็คเกจ com.demo.web.controllers ดังนี้:
แพ็คเกจ com.demo.web.controllers; นำเข้า java.security.nosuchalgorithmexception; นำเข้า Javax.validation.valid; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.ui.model.model org.springframework.web.bind.annotation.modelattribute; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.requestmethod; "/ตรวจสอบความถูกต้อง") คลาสสาธารณะ validateController {@requestmapping (value = "/test", method = {requestmethod.get}) การทดสอบสตริงสาธารณะ (รุ่นโมเดล) {ถ้า (! model.containsatribute ("contentModel")) {model.addattribute ( } return "ValidateTest"; } @RequestMapping (value = "/test", method = {requestMethod.post}) การทดสอบสตริงสาธารณะ (โมเดลโมเดล, @valid @modelattribute ("contentModel") validateModel validateModel ทดสอบ (รุ่น); ส่งคืน "Veridatesuccess"; -@valid @modelattribute ("ContentModel") ValidateModel ValidateModel @Valid หมายถึงการตรวจสอบหลังจากเชื่อมโยงข้อมูลกับ @ModelAttribute ("ContentModel")
เพิ่มเนื้อหา ValidateModel.java ในแพ็คเกจ com.demo.web.models ดังนี้:
แพ็คเกจ com.demo.web.models; นำเข้า org.hibernate.validator.constraints.email; นำเข้า org.hibernate.validator.constraints.notempty; นำเข้า org.hibernate.validator.constraints.range; @Range (min = 0, max = 150, message = "{age.not.inrange}") อายุสตริงส่วนตัว; @NotEmpty (message = "{email.not.empty}") @email (message = "{email.not.correct}") อีเมลสตริงส่วนตัว; โมฆะสาธารณะ setName (ชื่อสตริง) {this.name = name; } การตั้งค่าโมฆะสาธารณะ (อายุสตริง) {this.age = อายุ; } โมฆะสาธารณะ setEmail (อีเมลสตริง) {this.email = อีเมล; } สตริงสาธารณะ getName () {return this.name; } public String getage () {return this.age; } สตริงสาธารณะ getEmail () {return this.email; -เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ที่มีข้อความการตรวจสอบคำอธิบายประกอบอยู่ในไฟล์ ValidateMessages.properties:
name.not.empty =/U540D/U79F0/U4E0D/U80FD/U4E3A/U7A7A/U3002AGE.NOT.INRANGE =/U5E74/U9F84/U8D85 /U51FA/U8303/U56F4/U3002EMAIL.NOT.CORRECT=/U90AE/U7BB1/U5730/U5740/U4E0D/U6B63/U786E/U3002EM ail.not.empty =/u7535/u5b50/u90ae/u4e0d/u80fd/u60df/u6050/u3002email.not.empty =/u7535/u5b50/u 90AE/U4E0D/U80FD/U6050/U3002EMAIL.NOT.ANTY.SPTY =/U7535/U5B50/U90AE/U4E0D/U80FD/U60DF/U6050/U3002
ในหมู่พวกเขา Name.not.empty ฯลฯ สอดคล้องกับชื่อ xxx ใน message =” xxx” ในไฟล์ validateModel.java เนื้อหาต่อไปนี้จะถูกป้อนในการเข้ารหัส ASCII ที่แปลงเป็นภาษาจีนโดยอัตโนมัติ แน่นอนคุณยังสามารถเขียน XXX ได้โดยตรงเป็นเนื้อหาที่พร้อมท์โดยไม่ต้องสร้างไฟล์อื่น ๆ ไฟล์ properties และเพิ่ม อย่างไรก็ตามสิ่งนี้ไม่ถูกต้องเพราะถ้าคุณใช้รหัสฮาร์ดคุณจะไม่สามารถทำให้เป็นสากลได้
เพิ่มสองมุมมองในโฟลเดอร์ Views, ValidateTest.jsp และ chalidatesuccess.jsp ตามลำดับ:
<%@ page language = "java" contentType = "ข้อความ/html; charset = utf-8" pageencoding = "utf-8"%> <! doctype html สาธารณะ "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><%@ taglib คำนำหน้า =" ฟอร์ม "uri =" http://www.springframework.org/tags/form charset = utf-8 "> <title> แทรกชื่อเรื่องที่นี่ </title> </head> <body> <ฟอร์ม: รูปแบบ modelattribute =" contentModel "method =" post "> <ฟอร์ม: ข้อผิดพลาดเส้นทาง ="*"> </ฟอร์ม: ข้อผิดพลาด> <br/> ชื่อ: path = "age"/> <br/> <ฟอร์ม: ข้อผิดพลาด path = "อายุ"> </ฟอร์ม: ข้อผิดพลาด> <br/> อีเมล: <ฟอร์ม: อินพุตพา ธ = "อายุ"> </ฟอร์ม: ข้อผิดพลาด> <br/> path = "อีเมล"/> <br/> <ฟอร์ม: </body> </html>
<%@ page language = "java" contentType = "ข้อความ/html; charset = utf-8" pageencoding = "utf-8"%> <! doctype html สาธารณะ "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head> <meta http-equiv =" content-ype "content =" ข้อความ/html; charset = utf-8 " </body> </html>
เป็นสิ่งสำคัญอย่างยิ่งที่จะต้องชี้ให้เห็นว่าชื่อ xxx หลังจาก modelattribute = "xxx" ใน ValidateTest.jsp View ต้องสอดคล้องกับชื่อ xxx ใน @valid @modelattribute ที่สอดคล้องกัน ("xxx") มิฉะนั้นข้อมูลโมเดลและข้อมูลข้อผิดพลาดจะไม่ถูกผูกไว้
<ฟอร์ม: ข้อผิดพลาด PATH = "ชื่อ"> </ฟอร์ม: ข้อผิดพลาด> จะแสดงข้อมูลข้อผิดพลาดสำหรับแอตทริบิวต์ที่เกี่ยวข้องของโมเดล เมื่อ path = "*" ข้อมูลข้อผิดพลาดสำหรับแอตทริบิวต์ทั้งหมดของโมเดลจะปรากฏขึ้น
เรียกใช้การทดสอบ:
คลิกเพื่อส่งโดยตรง:
คุณสามารถดูข้อความแสดงข้อผิดพลาดว่าการตั้งค่าจะปรากฏขึ้นอย่างถูกต้อง
กรอกข้อมูลที่ไม่ถูกต้องในการส่ง:
คุณจะเห็นว่าข้อความแสดงข้อผิดพลาดที่ยังคงแสดงอยู่อย่างถูกต้อง
กรอกข้อมูลที่ถูกต้องเพื่อส่ง:
คุณจะเห็นว่าการตรวจสอบนั้นสำเร็จ
ต่อไปนี้เป็นบันทึกการตรวจสอบหลักและคำแนะนำ:
เนื้อหาการตรวจสอบข้อมูลสิ้นสุดที่นี่ดาวน์โหลดรหัส: ตัวอย่าง
สำหรับข้อมูลเพิ่มเติมโปรดดูเอกสารอย่างเป็นทางการ: http://docs.jboss.org/hibernate/validator/4.3/reference/en-us/html/validator-usingvalidator.html
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น