تحتاج مشاريع ويب تطوير Boot في بعض الأحيان إلى إجراء بعض التحقق الأساسي للمعلمات التي تم تمريرها بواسطة طبقة وحدة التحكم ، مثل غير فارغة ، ومدى قيم عدد صحيح ، وطول الأوتار ، والتاريخ ، والبريد الإلكتروني ، وما إلى ذلك. يدعم الربيع واجهة برمجة تطبيقات JSR-303 Bean ، والتي يمكن فحصها بسهولة.
استخدم التعليقات التوضيحية للتحقق
حدد أولاً كائن تغليف النموذج
Class requestform {size (min = 1 ، max = 5) اسم السلسلة الخاصة ؛ السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ }}يقتصر حقل الاسم على طول 1 إلى 5 مع شرح الحجم. الحجم هو شرح القيد في حزمة جافاكس.
عند استخدام التعليق التوضيحي Valid ، فهذا يعني أن الفول يجب التحقق منه.
ResponseBodyGetMapping (value = "bean") public string vialthed (requestform requestform request) {system.out.println (request.getName ()) ؛ العودة "موافق" ؛ }التعليقات التوضيحية المخصصة
إذا لم تكن التعليقات التوضيحية المدمجة كافية ، فيمكنك تخصيص التعليقات التوضيحية.
على سبيل المثال ، قم أولاً بتحديد توضيح التعليقات التوضيحية ، وتقييد حقل الاسم المراد تحديده من بيانات محددة.
target ({elementType.field ، elementtype.parameter})@entry (enthypolicy.runtime) constraint (adadactedby = nameconstraintvalidator.class) interface nameconstraint {] string [] المسموح () ؛ الفئة <؟> [] المجموعات () الافتراضي {} ؛ الفئة <؟ يمتد Payload> [] Payload () افتراضي {} ؛ رسالة سلسلة () ؛}حيث تمثل القيمة المسموح بها نطاق القيمة القانونية ، والرسالة هي معلومات العرض لفشل التحقق.
الرسائل والمجموعات والحمولة الحمولة هي الحقول المطلوبة من قبل المدقق السبات. إذا كنت تريد أن تعرف ، يرجى الرجوع إلى الوثائق الرسمية.
تحديد التحقق من التحقق الحقيقي
class nameconstraintvalidator تنفذ constrentvalidator <nameconstraint ، string> {private string [] alvalValues ؛ Override public void تهيئة (nameconstraint constraintannotation) {appalvalues = constraintannotation.allowedvalues () ؛ } Override public boolean isValid (قيمة السلسلة ، سياق constraintValIdatorContext) {for (string s: this.validvalues) {if (s.equals (value)) {return true ؛ }} إرجاع خطأ ؛ }}استخدم في النموذج على النحو التالي
class requestFormWithCustomConstraint { @nameconstraint (المسموح بها = {"bar" ، "foo"} ، message = "bar only ، foo") اسم السلسلة الخاصة ؛ السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ }}التحقق المباشر من المعلمات
ماذا علي أن أفعل إذا كنت لا أريد تغليف كائن؟ يمكن فحص هذه المعلمة مباشرة
@controller@addactmapping (value = "devalator") public parametervalidatordemocontroller {responsebody@gappapping (value = "simple") السلسلة العامة validateParameter (size (min = 1 ، max = 5) name) {system.out.println (name) ؛ العودة "موافق" ؛ }}يخبر التعليق التوضيحي المعدل فوق وحدة التحكم Spring أنه يحتاج إلى مسح هذه الفئة للتحقق من شرح القيد.
للحصول على التفاصيل ، يرجى الرجوع إلى الفصول ذات الصلة من الوثيقة الرسمية.
https://docs.spring.io/spring-boot/docs/1.5.9
https://docs.spring.io/spring/docs/4.3.16.release/spring-framework-reference/htmlsingle/#validation-beanvalidation
رمز على جيثب
https://github.com/kabike/spring-boot-demo
لخص
ما سبق هو شرح مفصل لطريقة التحقق من معلمة Boot SPRING التي قدمها لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، يرجى ترك رسالة لي. سوف يرد المحرر إليك في الوقت المناسب!