حدث ارتباط خطوط يؤدي إلى التحقق من الصحة غير الصحيح
-
25-09-2019 - |
سؤال
لدي خطوط: علامة الارتباط في JSP مع سمة الحدث:
<stripes:link href="${actionBean.context.currentStage.stripesForwardAction}" addSourcePage="true" event="showTab2Link">
هذا يؤدي إلى التحقق من الصحة إلى الخصائص المتداخلة:
@ValidateNestedProperties({
@Validate(field="county", required=true, minlength=2, maxlength=2, mask="\\d\\d"),
@Validate(field="parish", required=true, minlength=3, maxlength=3, mask="\\d\\d\\d"),
@Validate(field="holding", required=true, minlength=4, maxlength=4, mask="\\d\\d\\d\\d")
})
ومع ذلك ، سيكون هذا جيدًا إذا كانت القيم الفعلية التي لا يوجد فيها التحقق من الصحة موجودة ، لكنها موجودة داخل HTML وعند تصحيح الفول. لماذا ستؤدي الخطوط: الارتباط إلى هذا؟
إذا قمت بتغييره إلى خطوط: أرسل ، فلا بأس.
شكرًا،
ديف
المحلول
السبب الذي يتم تشغيله هو أن الخطوط: يجب أن يكون إرسال الحقول في النموذج ، لذلك يتم إرسال هذه الحقول إلى الخادم عند تقديم النموذج. باستخدام الرابط ، لا تحصل على أي حقول إلا إذا قمت بإضافتها كمعلمات ارتباط.
يمكنك إصلاح هذه واحدة من طريقتين ، حسب:
هل تريد تلك الحقول الموجودة على الفول عند النقر فوق الرابط؟ بعد ذلك ، ستحتاج إلى ملء الرابط بالمعلمات حتى يتم إضافتها للحصول على نمط سلسلة الاستعلام:
<stripes:link href="${actionBean.context.currentStage.stripesForwardAction}" addSourcePage="true" event="showTab2Link">
<stripes:param name="county" value="${actionBean.county}" />
<stripes:param name="parish" value="${actionBean.parish}" />
<stripes:param name="holding" value="${actionBean.holding}" />
link text
</stripes:link>
من ناحية أخرى ، إذا لم تكن بحاجة إليها في الفول لهذا الحدث ، فيمكنك إخبار ValidatEntedProperties بتجاهل هذا الحدث:
@ValidateNestedProperties({
@Validate(field="county", on="!showTab2Link", required=true, minlength=2, maxlength=2, mask="\\d\\d"),
@Validate(field="parish", on="!showTab2Link", required=true, minlength=3, maxlength=3, mask="\\d\\d\\d"),
@Validate(field="holding", on="!showTab2Link", required=true, minlength=4, maxlength=4, mask="\\d\\d\\d\\d")
})
بعد ذلك ، لن يتم تشغيل التحقق من الصحة على الحدث showtab2link ما لم يتم توفيره بالفعل.