قيود مدمجة في التحقق من صحة الفول
@null يجب أن يكون العنصر المشروح فارغًا
notnull يجب ألا يكون العنصر المشروح فارغًا
ASTERTRUE يجب أن يكون العنصر المشروح صحيحًا
@ASTERTFALSE يجب أن يكون العنصر المشروح خاطئًا
min (القيمة) يجب أن يكون العنصر المشروح رقمًا ، ويجب أن تكون قيمته أكبر من أو تساوي القيمة الدنيا المحددة.
max (القيمة) يجب أن يكون العنصر المشروح رقمًا ، ويجب أن تكون قيمته أقل من أو تساوي القيمة القصوى المحددة.
decimalmin (القيمة) يجب أن يكون العنصر المشروح رقمًا ، ويجب أن تكون قيمته أكبر من أو تساوي القيمة الدنيا المحددة
decimalmax (القيمة) يجب أن يكون العنصر المشروح رقمًا ، ويجب أن تكون قيمته أقل من أو تساوي القيمة القصوى المحددة
size (max = ، min =) يجب أن يكون حجم العنصر المشروح ضمن النطاق المحدد.
digits (عدد صحيح ، الكسر) يجب أن يكون العنصر المشروح رقمًا ويجب أن تكون قيمته ضمن نطاق مقبول.
past يجب أن يكون العنصر المشروح هو التاريخ السابق
future يجب أن يكون العنصر المشروح تاريخًا مستقبليًا
pattern (regex = ، flag =) يجب أن يمتثل العنصر المشروح للتعبير العادي المحدد
صحة السباتية المرفقة
notblank (message =) تحقق من أن السلسلة ليست فارغة ويجب أن تكون أكبر من 0
email يجب أن يكون العنصر المشروح هو عنوان بريد إلكتروني
length (min = ، max =) يجب أن يكون حجم السلسلة المشروحة ضمن النطاق المحدد.
notempty يجب أن تكون السلسلة المعلقة غير فارغة
range (min = ، max = ، message =) يجب أن يكون العنصر المشروح ضمن النطاق المناسب
الآثار والمزايا
لنرى التأثير النهائي أولاً:
مستخدم الفئة العامة {password private string password ؛ eMail Private String البريد الإلكتروني ؛}يستخدم ما سبق اثنين من التعليقات التوضيحية المخصصة للتحقق من كلمة المرور والبريد الإلكتروني. ميزة هذا هي: يتم استخدام تعريف واحد في كل مكان. عند تعديل قواعد التحقق ، تحتاج فقط إلى تعديل التعليقات التوضيحية. إذا قمت بتخصيصها ، استخدم العلامة التي توفرها Hibernate:
pattern (regexp = "...") سلسلة البريد الإلكتروني الخاصة ؛
إذا كنت بحاجة فجأة إلى تعديل قاعدة التحقق REGEXP بعد كتابة العديد من الفصول ، فإن عبء العمل سيكون أكبر بكثير في هذا الوقت.
ينجز
أولاً ، قدم تبعية التحقق من صحة السبات وإضافة:
<!-مدقق Hibernate-> <!-إطار التحقق من السبات-> <redency> <roupiD> org.hibernate </groupId> <Stifactid> hibernate-validator </attifactId> <splement> 5.2.2.final </sperence> </empendency>
التحقق من صحة السبات هو تطبيق مرجعي لـ JSR ، لذلك استخدمه للتحقق من الفول.
ينقسم تخصيص توضيح التحقق إلى ثلاث خطوات:
الخطوة الأولى هي إنشاء التعليقات التوضيحية:
@target ({method ، الحقل ، التعليق التوضيحي ، مُنشئ ، معلمة})@entry (runtime)@documented@crodrint (validatedby = {elemvalidator.class}) public interface email {string message () الافتراضي "هذا ليس تنسيق بريد إلكتروني صالح" ؛ /** * regurn التعبير العادي لمطابقة */string regexp () افتراضي "[a-za-z0-9 ._ ٪+-]+ @[a-za-z0-9]+//. [a-za-z] {2،4}" ؛ الفئة <؟> [] المجموعات () الافتراضي {} ؛ الفئة <؟ يمتد Payload> [] Payload () افتراضي {} ؛ /*** يحدد العديد من التعليقات التوضيحية {link} على نفس العنصر. * * size size */ @target ({method ، الحقل ، التعليق التوضيحي ، مُنشئ ، معلمة}) retention (وقت التشغيل) documented @interface list {email [] value () ؛ }} قم بإنشاء التعليقات التوضيحية من خلال الكلمة الرئيسية interface ، وكل طريقة هي معلمة من التعليقات التوضيحية. على سبيل المثال ، في الكود أعلاه ، يمكنك استخدام @Email(regexp="...",message="...") مثل هذا. يمكنك تجاهل الباقي ، فقط نسخه مباشرة. تجدر الإشارة إلى أن @Constraint(validatedBy = { EmailValidator.class }) ، هنا يحدد فئة التحقق من التعليقات التوضيحية ويحل محل اسم الفصل وفقًا للوضع الفعلي.
الخطوة الثانية هي إنشاء فئة التحقق:
الطبقة العامة eLlemValidator تنفذ CrosntaintValIdator <البريد الإلكتروني ، string> {private string regexp ؛ Override public void تهيئة (constantantAntation) {this.regexp = constraintannotation.regexp () ؛ } Override public boolean isValid (قيمة السلسلة ، سياق constrentvalidatorContext) {if (value == null) {return true ؛} if (value.matches (regexp)) {return true ؛ } إرجاع خطأ ؛ }} هنا ، فقط قم بتنفيذ ConstraintValidator<Email, String> واجهة وإنشاء مصادقة. تحصل طريقة التهيئة على قيمة إعادة التهيئة المشروحة ، ويتم التحقق من طريقة ISValid. إذا كان يفي بالتعبير العادي ، فإنه يعود صحيحًا ، وإلا فإنه يعود خطأ.
تجدر الإشارة إلى أنه عندما تكون القيمة فارغة ، أي عندما لا يتم تهيئة كائن التحقق ، يجب كتابة قواعد التحقق المقابلة ، وإلا سيتم الإبلاغ عن خطأ. في الكود أعلاه ، ما هو مكتوب هو:
if (value == null) {return true ؛}هذا هو ، عندما يكون كائن التحقق فارغًا ، فإنه يعيد النجاح.
الخطوة الثالثة هي كتابة رسالة الخطأ الافتراضية. في الواقع ، تم إجراء هذه الخطوة في الخطوة الأولى ، من خلال الافتراضي ، لذلك لا يلزم القيام بهذه الخطوة.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.