مقدمة
التحقق من البيانات هو مهمة يحتاج كل تطبيق تقريبًا إلى القيام بها. يتم إرسال البيانات التي أدخلها المستخدم إلى الخادم. يعلم الله ما إذا كانت البيانات التي يدخلها المستخدم قانونية وما إذا كانت ضارة. لذلك ، يجب على نظام التطبيق القوي التحقق من مدخلات المستخدم ، وحظر المدخلات غير القانونية خارج التطبيق ، ومنع هذه المدخلات غير القانونية من إدخال النظام ، وبالتالي ضمان استقرار النظام وأمانه.
نعلم جميعًا أنه من أجل تجربة مستخدم أفضل وكفاءة أعلى ، تحتوي تطبيقات الويب الحالية على بيانات البيانات التالية:
يتم التحقق من بيانات العميل بشكل أساسي من خلال رمز JavaScript ؛ يعد التحقق من البيانات من جانب الخادم هو السطر الأخير للدفاع للتطبيق بأكمله لمنع البيانات غير القانونية ، ويتم تنفيذها بشكل أساسي من خلال البرمجة في التطبيق.
من أجل تقليل عبء عمل المطورين وتحسين كفاءة العمل ، بذل إطار STRUTS2 أيضًا الكثير من الجهد في التحقق من البيانات. فكيف يكمل STRUTS2 التحقق من البيانات؟ (نظرًا لأن قدرة التحقق من العميل لإطار STRUTS2 ضعيفة ، فلن يتم تلخيصها. تلخص هذه المقالة بشكل أساسي وظيفة التحقق من البيانات من جانب الخادم لإطار Struts2)
اكتب ملفات قواعد التحقق
نعلم جميعًا أن التحقق من البيانات هو كل رمز مرهق. من أجل الخروج من هذه الرموز المرهقة ، يوفر إطار عمل Struts2 التحقق من البيانات استنادًا إلى ملفات التكوين. يتطلب فقط كتابة ملف قاعدة التحقق. يحدد ملف قاعدة التحقق ما هي القواعد التي يجب أن تلتقي بها كل حقل نموذج.
دعنا نتحدث عن التحقق من إطار الإدخال من Struts2 من خلال مثال تجريبي.
صفحة مكتب الاستقبال:
<Body> <form action = "login" method = "post"> اسم المستخدم: <type type = "text" name = "name" /> <s: fielderror fieldName = "name" /> <bord> كلمة المرور: <إدخال type " FieldName = "Age" /> <br> عيد الميلاد: <input type = "text" name = "birthday" /> <s: fielderror fieldName = "birthday" /> <br> <input type = "submit" value =
رمز معالجة عمل الخلفية:
يمتد تسجيل الدخول إلى الطبقة العامة ActionSupport {اسم السلسلة الخاصة ؛ كلمة مرور السلسلة الخاصة ؛ عصر INT الخاص ؛ عيد ميلاد التاريخ الخاص نصيحة سلسلة خاصة public void setName (اسم السلسلة) {this.name = name ؛ } السلسلة العامة getName () {return name ؛ } public void setPassword (سلسلة كلمة مرور) {this.password = password ؛ } السلسلة العامة getPassword () {return password ؛ } public void setage (int age) {this.age = age ؛ } public int getage () {return Age ؛ } public void setbirthday (Date Birthday) {this.birthday = عيد ميلاد ؛ } التاريخ العام getBirthday () {return Birthday ؛ } public void cropp (tring tip) {this.tip = tip ؛ } السلسلة العامة getTip () {return tip ؛ } السلسلة العامة تنفيذ () يلقي استثناء {// العملية مبسطة هنا. العودة النجاح }}من خلال رمز الإجراء أعلاه ، يمكننا أن نرى أنني لم أضف أي رمز التحقق من الحقل ، لكننا بحاجة فقط إلى كتابة ملف التحقق ، على النحو التالي:
<؟ عنصر الجذر لملف التحقق-> <Edalators> <!-تحقق من سمة الاسم لملف تكوين التحقق-> <الحقل name = "name"> <!-حدد أن سمة الاسم يجب أن تفي بالموارد المطلوبة-> <الحقل- -> <field-validator type = "regex"> <param name = "regexexpression"> <! [cdata [(/w {4،25})]] name = "password"> <field-validator type = "requiredString"> <param name = "trim"> true </param> يجب إدخال كلمة المرور </message> </field-validator> <field-validator type = "regex"> <param name = "regexexpression"> <! لا يمكن أن تكون إدخال الحروف والأرقام إلا ، ويجب أن يكون الطول بين 4 و 25 </message> </field-validator> </field> <!-تحقق من السمة العمرية للإجراء-> <الحقل name = "Age"> <حقل-validator> </"int"> <param name = "min" </field-validator> </field> <!-تحقق من خاصية عيد ميلاد الإجراء-> <field name = "birthday"> <field-validator type = "date" </field-validator> </field> </endradators>تختلف قواعد ملف التحقق من Struts2 عن طريقة تصميم ملف التحقق من Struts1. يحتوي كل إجراء في Struts2 على ملف التحقق ، لذلك يجب أن يتوافق اسم ملف ملف التحقق للقواعد التالية:
<اسم الإجراء> -validation.xml
يمكن تغيير اسم الإجراء السابق ، ويتم دائمًا إصلاح جزء VERIDADED.xml ، ويجب حفظ ملف التحقق في نفس المسار مثل ملف فئة الإجراء.
على غرار فشل تحويل النوع ، عند فشل التحقق من الإدخال ، تقوم Struts2 أيضًا بإرجاع نتيجة تسمى "الإدخال" ، لذلك من الضروري تكوين نتيجة تسمى "الإدخال" في ملف Struts.xml.
التدويل معلومات سريعة
في حالة فشل التحقق ، يجب مطالب المستخدم برسائل الخطأ. حتى الآن تنشأ مشكلة. في بيئة متعددة اللغات ، كيفية المطالبة بشكل صحيح بمعلومات موجه اللغة المقابلة؟ لا يمكن كتابته مباشرة في ملف التحقق كما أعلاه. بالنسبة لمعلومات موجه التدويل ، حدد السمة الرئيسية لعنصر الرسالة ، والذي يحدد المفتاح المقابل لمعلومات موجه التدويل.
على سبيل المثال ، يمكن كتابة ملف التحقق أعلاه تقريبًا مثل هذا:
<!-تحقق من سمة اسم الإجراء-> <field name = "name"> <!-يجب أن تفي سمة الاسم المحددة بالقواعد المطلوبة-> <type-validator type = "requiredString"> <param name = "trim"> true </param> <message key = "name.required"/> </field-validator> type = "regex"> <param name = "regexexpression"> <! [cdata [(/w {4،25})]]مدقق مدمج
في ملف التحقق أعلاه ، يمكنك رؤية مثل هذا البيان:
<type field-validator = "requiredString"> <field-validator type = "regex"> ...
قيمة سمة النوع هنا هي المدقق. هناك عدد كبير من أجهزة التحقق المدمجة المقدمة في إطار STRUTS2. يمكن لأجهزة التحقق المدمجة هذه تلبية احتياجات التحقق من معظم التطبيقات. نحتاج فقط إلى استخدام أجهزة التحقق هذه.
يمكننا استخدام أداة إزالة الضغط لفتح ملف XWORK-CORE-2.3.24.1.JAR. ضمن XWORK-CORE-2.3.24.1.JAR/COM/OPENSYMPHONY/XWORK2/PATADATOR/DEADATORS ، يمكننا العثور على ملف default.xml. هذا الملف هو ملف تسجيل جهاز التحقق الافتراضي لـ Struts2 ، والمحتوى كما يلي:
<؟ exerier-> <validator name = "required"/> <validator name = "required"/> <!-integer expier-> <validator name = "int"/> <!-integer integer experier-> <validator name = "long"/> <!-vereger verifier-> <editator name = exerier-> <validator name = "date"/> <!-expression exerier-> <validator name = "expression"/> <!-field expression experivery-> <validator name = "fieldexpression"/> <! name = "visitor"/> <validator name = "conversion"/> <validator name = "conversion"/> <validator name = "stringlength"/> <validator name = "regex"/> <validator name = "incloyalvisitor"/> </daldators> <!
فيما يتعلق بالاستخدام المحدد لأجهزة التحقق هذه ، لن أعطي أمثلة هنا.
لخص
تلخص هذه المقالة لفترة وجيزة أجهزة التحقق في إطار Struts2. أساسيات أجهزة التحقق المذكورة هنا هي كيفية استخدامها. الشيء الأكثر أهمية هو إتقان فكرة أجهزة التحقق من Struts2 وإكمالها من خلال التكوين. هذه الطريقة تستحق التعلم من. في تعلمنا للأطر الأخرى ، سنواجه هذه الطريقة أيضًا. الدراسة والألم والسعادة.
حسنًا ، ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.