7. Sunucu Taraflı Doğrulama

Doğrulama kurallarını tanımlamak için özel XML isim uzayları (namespaces) kullanmak yerine Gizli Özellik (Hidden Property) desenini kullanıyoruz.

Mekanizma

  • "Kural Alanı" (Rule Field), "Gerçek Alanı" (Real Field) hedefleyen bir form özelliği olarak tanımlanır
  • İsimlendirme Kuralı: Kural Alanı Kimliği (ID) rule_{HedefAlanKimliği} şeklinde olmalıdır
  • Görünürlük: Kullanıcı arayüzünde (UI) gösterilmesini önlemek için Kural Alanı readable="false" değerine sahip olmalıdır
  • Depolama: Doğrulama kuralı dizesi, default niteliğinde saklanır

Doğrulama Sözdizimi (Syntax)

Kurallar, XML uyumluluğu için parantezli keyword(args) biçimini kullanır.

Dize (String) Doğrulaması

Anahtar Kelime Argümanlar Örnek Açıklama
regex (desen) regex(^.+@.+$) Düzenli İfadeye (Regular Expression) göre doğrular
length (min-max) length(10-200) Minimum ve maksimum uzunluk arasında (sınırlar dahil)
lengthMin (min) lengthMin(10) En az min uzunluk
lengthMax (max) lengthMax(200) En fazla max uzunluk

Sayısal Doğrulama

Anahtar Kelime Argümanlar Örnek Açıklama
number (min-max) number(18-65) Minimum ve maksimum değer arasında (sınırlar dahil)
numberMin (min) numberMin(18) Değer en az min
numberMax (max) numberMax(100) Değer en fazla max

Tam Doğrulama Örneği

<userTask id="registration" name="User Registration">
    <extensionElements>
        <!-- Email Field -->
        <activiti:formProperty id="email" name="Email Address" type="string" required="true"/>
        <activiti:formProperty id="rule_email" type="string" default="regex(^.+@.+\..+$)" readable="false"/>
        
        <!-- Age Field -->
        <activiti:formProperty id="age" name="Age" type="long" required="true"/>
        <activiti:formProperty id="rule_age" type="string" default="number(18-65)" readable="false"/>
        
        <!-- Description Field -->
        <activiti:formProperty id="bio" name="Short Bio" type="string">
            <activiti:value id="type" name="textarea"/>
        </activiti:formProperty>
        <activiti:formProperty id="rule_bio" type="string" default="length(10-500)" readable="false"/>
    </extensionElements>
</userTask>