Skip to content

12. مثال 09B – اعتبارسنجی مدل

برنامه زیر تغییری از برنامه قبلی است. قبلاً، برای اقدام A:

  • فایل قوانین اعتبارسنجی A-validation.xml نام داشت
  • فایل پیام‌های خطای اعتبارسنجی A.properties نامیده می‌شد

در اینجا، برای اقدام A از مدل M:

  • فایل قواعد اعتبارسنجی M-validation.xml نامیده می‌شود
  • فایل پیام‌های خطای اعتبارسنجی با نام M.properties نامگذاری شده است.
  • فایل A-validation.xml هنوز وجود دارد، اما محتوای آن قوانین اعتبارسنجی را به فایل M-validation.xml هدایت می‌کند.

این تنها تغییراتی است که ما در نسخه قبلی ایجاد خواهیم کرد.

پروژه NetBeans به شرح زیر است:

  • به [1]، اکشن [FormInt] و فایل اعتبارسنجی آن
  • به [2]، قالب آن [FormIntModel]، فایل اعتبارسنجی این قالب و پیام‌های مرتبط با این قالب.

بقیه موارد دقیقاً مشابه نسخه قبلی است.

فایل [FormInt-validation.xml] به شرح زیر است:


<!--
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//
EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
-->
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//
EN" "http://localhost:8084/example-09B/example/xwork-validator-1.0.2.dtd">

<validators>
  <field name="model" >
    <field-validator type="visitor">
      <param name="appendPrefix">false</param>
      <message/>
    </field-validator>
  </field>
</validators>

ما سعی نمی‌کنیم محتوای این فایل را توضیح دهیم. ما آن را همان‌طور که هست می‌پذیریم، با در نظر گرفتن هدف آن: واگذاری قواعد اعتبارسنجی به قالب. شاید این سؤال پیش بیاید که هدف از این کار چیست. در واقع، ممکن است مدل، قواعد اعتبارسنجی و پیام‌های آن از قبل وجود داشته و توسط اکشن‌های مختلف استفاده شوند. بنابراین، به جای تکرار قواعد اعتبارسنجی و پیام‌های یکسان برای اکشن‌های گوناگون، ترجیح داده می‌شود که این قابلیت‌ها به مدل واگذار شوند.

فایل [FormIntModel-validation.xml] با فایل [FormInt-validation.xml] از نسخه قبلی یکسان است.

فایل [FormIntModel.properties] با فایل [FormInt.properties] از نسخه قبلی یکسان است.

از خوانندگان دعوت می‌شود تا این نسخه جدید را آزمایش کنند.