باستخدام Struts Validator، هل يمكنني التحقق مما إذا كانت جميع الحقول فارغة؟

StackOverflow https://stackoverflow.com//questions/25054549

سؤال

أقوم بإعادة كتابة أجزاء من مشروع قديم للاستفادة من الدعامات 1 إطار المدقق.

لقد قمت بتكييف قواعد التحقق من الصحة في كل حقل على حدة، مع تعبير عادي يمكن إعادة استخدامه في أشكال أخرى، مثل:

        <field property="idNumber" depends="mask">
            <msg name="mask" key="error.formating.idnumber" />
            <arg position="0" value="SearchForm.idNumber" />
            <var>
                <var-name>mask</var-name>
                <var-value>${maskIdNumber}</var-value>
            </var>
        </field>

هناك تحقق واحد متبقي للتنفيذ:أحتاج للتأكد من أن المستخدم قد امتلأ أي من الحقول قبل التقديم.بالنظر إلى الأسئلة الشائعة رأيت أن هناك شروطًا مثل validwhen يمكن استخدامها للتحقق من صحة الحقول مقابل بعضها البعض، ولكن إذا لم أكن مخطئًا، فيجب إرفاقها بأحد حقول النموذج.

إذا كتبت هذا:

        <field property="idNumber" depends="validwhen">
            <msg name="mask" key="error.form.empty" />
            <arg position="0" value="SearchForm.idNumber" />
            <var>
                <var-name>test</var-name>
                <var-value>(idNumber != null) or (packageNumber != null)</var-value>

            </var>
        </field>    

سيتم تجربة الاختبار فقط إذا لم يكن الحقل "idNumber" فارغًا، أليس كذلك؟الأسئلة الشائعة تنص على ذلك

أي حقل غير مطلوب "مطلوب" سيتخطى عمليات التحقق الأخرى إذا كان الحقل لاغًا أو يبلغ طوله صفر.

هل كانت مفيدة؟

المحلول

لقد حاولت استخدام validwhen, ، ولكن تم تقديمه في الإصدار 1.2 من Stuts، وأنا في الإصدار 1.1، لذلك ظهر لي الخطأ لم يتم استدعاء ValidatorAction صالحًا عند العثور على رقم معرف الحقل.

يمكن أن أستخدم requiredif لكنه قد يستخدم أسوأ بناء جملة رأيته على الإطلاق.

بدلا من ذلك، اتبعت هذه التقنية من https://stackoverflow.com/a/20086863/113305, ، واستخدم كلا من Struts validator framework و ال validate() طريقة:

    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    ActionErrors errors = super.validate(mapping, request);

    if (idNumber.length() < 1 && packageNumber .length() < 1) {
        errors.add("emptyForm",
                new ActionError("error.form.empty", "emptyForm"));
    }

    return errors;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top