في السلسلة (4) و (5) ، نوضح كيفية ربط البيانات ، وكيفية ضمان صحة البيانات التي نحصل عليها بعد ربط البيانات؟ هذا ما سنتحدث عنه في هذه المقالة -> التحقق من البيانات.
نحن هنا نستخدم السبات الفاشل للتحقق. يقوم Hibernate-Validator بتنفيذ إطار التحقق من JSR-303 لدعم التحقق من أسلوب التعليقات التوضيحية. أولاً ، نحتاج إلى تنزيل حزمة JAR المطلوبة على http://hibernate.org/validator/. نحن هنا نستخدم 4.3.1.final كإظهار. بعد إلغاء الضغط ، أضف الحزم الثلاثة Hibernate-Validator-44.3.1.final.jar ، Jboss-logging-3.1.0.jar ، التحقق من الصحة-api-1.0.0.ga.jar إلى المشروع.
قم بتكوين ملف Springservlet-Config.xml في المشروع السابق ، على النحو التالي:
<!-دعم لرسم التعليق التوضيحي الافتراضي-> <mvc: adadator-severator = "Valitator" التحويل = "خدمة التحويل" /> <bean id = "deverator"> <property name = "properClass" value = "org.hibropernate.validator.hibernatevalidator" /> -> <name property = "ValidationMessagesource" ref = "validateMessagesource"/> </bean> <bean id = "conversion-s-service"/> <bean id = "valateMessagesource"> <property name = "basename" value = "classpath: valalateMessages"/> <property name "file" value = "120"/> </ban>
The ClassPath: ValidateMessages in <property name = "basename" value = "classPath: ValidateMessages"/> هو الملف الذي توجد فيه رسالة التحقق من التعليقات التوضيحية ، ونحن بحاجة إلى إضافتها في مجلد الموارد.
إضافة محتوى ValityAteController.java في حزمة com.demo.web.controllers على النحو التالي:
package com.demo.web.controllers ؛ استيراد java.security.nosuchalgorithmexception ؛ استيراد javax.validation.valid ؛ استيراد org.springframework.stereotepee.controller ؛ org.springframework.ui.Model ؛ org.springframework.web.bind.annotation.modelattribute ؛ import org.springframework.web.bind.annotation.requestmapping ؛ import org.springframework.web.bind.annotation.requestmethod ؛ import "/validate") الفئة العامة ValidateController {REquestMapping (value = "/test" ، method = {requestMethod.get}) اختبار السلسلة العامة (نموذج النموذج) {if (! if (! } إرجاع "validateTest" ؛ } @requestmapping (value = "/test" ، method = {requestmethod.post}) اختبار السلسلة العامة (نموذج النموذج ، validmodelattribute ("contentModel") alightemodel validateModel ، bindingresult. اختبار (نموذج) ؛ إرجاع "التحقق من صحة" ؛ }}ValIdModelAttribute ("ContentModel") ValidateModel ValidateModelDvalid تعني للتحقق بعد ربط البيانات بـ modelattribute ("ContentModel").
إضافة محتوى ValityAtemodel.java في حزمة com.demo.web.models على النحو التالي:
package com.demo.web.models ؛ import org.hibernate.validator.constraints.email ؛ استيراد org.hibernate.validator.constraints.notempty ؛ استيراد org.hibernate.validator.constraints.range ؛ public class { @notempty (messageed = "{ Range (min = 0 ، max = 150 ، message = "{age.not.inrange}") age enter acter ؛ notempty (message = "{email.not.empty}") eMail (message = "{eLam.Not.correct}") private string email ؛ public void setName (اسم السلسلة) {this.name = name ؛ } public void setage (string age) {this.age = age ؛ } public void setemail (string email) {this.email = email ؛ } السلسلة العامة getName () {return this.name ؛ } السلسلة العامة getage () {return this.age ؛ } السلسلة العامة getEmail () {return this.email ؛ }}أضف المحتوى التالي إلى الملف الذي توجد فيه رسالة التحقق من التعليقات التوضيحية ، ملف ValityAtemessages.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.empty =/u7535/u5b50/u90ae/u4e0d/u80fd/u60df/u6050/u3002
من بينها ، name.not.empty ، وما إلى ذلك يتوافق مع اسم xxx في message = "xxx" في ملف ValityAtemodel.java. يتم إدخال المحتوى التالي في ترميز ASCII الذي يتم تحويله تلقائيًا باللغة الصينية. بالطبع ، يمكنك أيضًا كتابة xxx مباشرة كمحتوى موجه دون إنشاء ملف آخر alightateMessages.Properties وإضافته. ومع ذلك ، هذا غير صحيح ، لأنه إذا كنت ترميزها ، فلن تتمكن من تدويله.
أضف عرضين في مجلد المشاهدات ، ValityAteSt.jsp و Edudatesuccess.jsp ، على التوالي:
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! prefix taglib = "form" uri = "http://www.springframework.org/tags/form" ٪> <html> modelAttribute = "contentModel" method = "post"> <form: errors path = "*"> </form: errors> <br/> الاسم: <النموذج: إدخال path = "name"/> <br/> البريد الإلكتروني: <النموذج: إدخال path = "age"> </form: errors> <br/> path = "email"/> <br/> <النموذج: errors path = "email"> </form: errors> <br/> <input type = "president" value = "submit"/> </form> </html>
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <! "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html ؛ charset = utf-8 "> <title> أدخل العنوان هنا </head> </head> </body> </html>
من المهم بشكل خاص الإشارة إلى أن الاسم xxx بعد modelAttribute = "xxx" في طريقة عرض ValidateTest.jsp يجب أن يكون متسقًا مع الاسم xxx في valid modelattribute ("xxx") ، وإلا فلن تكون بيانات النموذج ومعلومات الخطأ ملزمة.
<النموذج: الأخطاء path = "name"> </form: الأخطاء> ستعرض معلومات الخطأ للسمات المقابلة للنموذج. عندما يتم عرض PATH = "*" ، يتم عرض معلومات الخطأ لجميع سمات النموذج.
قم بإجراء الاختبار:
انقر للإرسال مباشرة:
يمكنك رؤية رسالة الخطأ التي يتم عرض الإعدادات بشكل صحيح.
املأ البيانات غير الصحيحة للتقديم:
يمكنك أن ترى أن رسالة الخطأ التي لا تزال معروضة بشكل صحيح.
املأ البيانات الصحيحة للإرسال:
يمكنك أن ترى أن التحقق ناجح.
فيما يلي ملاحظات والتعليمات الرئيسية للتحقق:
ينتهي محتوى التحقق من البيانات هنا ، تنزيل الكود: العرض التوضيحي
لمزيد من المعلومات ، يرجى الرجوع إلى الوثيقة الرسمية:
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.