The following shows a listing of the various types of validations possible. Of course, the developer is free to add custom validation-rules as needed.
Value is required, and must be input by the end-user.
ApplicationResource.properties:
errors.required={0} is required.
myForm.title.displayname=Title
Validation.xml:
<field property="title" depends="required">
<msg name="required" key="errors.required" resource="true"/>
<arg0 name="required" key="myForm.title.displayname" resource="true"/>
</field>
Result when error:
Title is required.
Validation made via a "regular expression".
ApplicationResource.properties:
myForm.error.title.mask=The Title must begin with an uppercase character
and contain alphanumeric characters only.
Validation.xml:
<field property="title" depends="mask">
<msg name="mask" key="myForm.error.title.mask" resource="true"/>
<var>
<var-name>mask</var-name>
<var-value>^[A-Z][A-Za-z0-9\s]*$</var-value>
</var>
</field>
Result when error:
The Title must begin with an uppercase character
and contain alphanumeric characters only.
Validation made via a "regular expression".
ApplicationResource.properties:
errors.range={0} must be between {1} and {2}.
myForm.age.displayname=age
Validation.xml:
<field property="age" depends="range">
<msg name="range" key="errors.range"/>
<arg0 name="range" key="myForm.age.displayname" resource="true"/>
<arg1 name="range" key="${var:min}" resource="false"/>
<arg2 name="range" key="${var:max}" resource="false"/>
<var>
<var-name>min</var-name>
<var-value>1</var-value>
</var>
<var>
<var-name>max</var-name>
<var-value>110</var-value>
</var>
</field>
Result when error:
age must be between 1 and 110.
Validation to insure a specific data type. Each of these validations may be used separately.
ApplicationResource.properties:
errors.integer={0} should be of type integer.
myForm.age.displayname=age
Validation.xml:
<field property="age" depends="integer">
<msg name="integer" key="errors.integer"/>
<arg0 name="integer" key="myForm.age.displayname" resource="true"/>
</field>
Result when error:
age should be of type integer.
Validates if the number of characters input by the user, respects the minimum number required.
ApplicationResource.properties:
errors.minlength={0} cannot contain less than {1} characters.
myForm.description.displayname=Description
Validation.xml:
<field property="description" depends="minlength">
<msg name="minlength" key="errors.minlength"/>
<arg0 name="minlength" key="myForm.description.displayname" resource="true"/>
<var>
<var-name>minlength</var-name>
<var-value>25</var-value>
</var>
</field>
Result when error:
Description cannot contain less than 25 characters.
Validates if the number of characters input by the user, respects the maximum number required.
ApplicationResource.properties:
errors.maxlength={0} cannot contain more than {1} characters.
myForm.description.displayname=Description
Validation.xml:
<field property="description" depends="maxlength">
<msg name="maxlength" key="errors.maxlength"/>
<arg0 name="maxlength" key="myForm.description.displayname" resource="true"/>
<var>
<var-name>maxlength</var-name>
<var-value>25</var-value>
</var>
</field>
Result when error:
Description cannot contain more than 25 characters.
Validates if the date input is a valid date. This validation requires two arguments: 'SimpleDateFormat' and a (date) pattern. Valid patterns include:
datePattern
datePatternStrict which validates length.
Hence, if the SimpleDateFormat is set to 'yyyy-MM-dd' and the user input '2002-4-4', using 'datePatternStrict' would return an error. (Expecting 10 characters got 8)
ApplicationResource.properties:
errors.date={0} is not a valid date.
myForm.opendate.displayname=Start Date
Validation.xml:
<field property="opendate" depends="date">
<msg name="date" key="errors.date"/>
<arg0 name="date" key="myForm.opendate.displayname" resource="true"/>
<var>
<var-name>datePatternStrict</var-name>
<var-value>yyyy-MM-dd</var-value>
</var>
</field>
Result when error:
Start Date is not a valid date.
Validates an e-mail address.
ApplicationResource.properties:
errors.email={0} does not contain a valid e-mail address.
myForm.email.displayname=User E-mail address
Validation.xml:
<field property="email_user" depends="email">
<msg name="email" key="errors.email"/>
<arg0 name="email" key="myForm.email.displayname" resource="true"/>
</field>
Result when error:
User E-mail address does not contain a valid e-mail address.
Validates a credit card number (using checksum).
ApplicationResource.properties:
errors.creditcard={0} does not contain a valid credit card number.
myForm.creditcard.displayname=Client credit card
Validation.xml:
<field property="email_user" depends="creditcard">
<msg name="creditcard" key="errors.creditcard"/>
<arg0 name="creditcard" key="myForm.creditcard.displayname" resource="true"/>
</field>
Result when error:
Client credit card does not contain a valid credit card number.
Please refer to the sample application 'bugtracker' for a detailed exemple of using validation within dbForms. This application can be found in the distribution package.