WebWork - WebWork - Simple validators

The following validators are included in the default validators.xml:

Name JavaScript aware Description
required   Field value must have a value (non-null)
requiredstring x Field value is non-null and has a length > 0
regex   If not empty, field value must match a regular expression
int x Field value must be an integer and within a range
date   Field value must be a date (the format is based on locale) and within a range
expression   A given OGNL expression is evaluated against the value stack and must return true. This is mostly usefully for cross-field validation. Errors are added as action errors
fieldexpression   A given OGNL expression is evaluated against the value stack and must return true. This is similar to expression but errors are added as field errors
email x Field value must be a valid e-mail address
url x Field value must be a valid url
visitor   Allows you to forward validation to object properties of your action using the objects own validation files
conversion   Add conversion errors from ActionContext to field errors of the action. This does the same thing as WebWorkConversionErrorInterceptor

Note: the above name can be changed if you supply your own validators.xml.

required

In SimpleAction-validation.xml:

<validators>
    <field name="bar">
        <field-validator type="required">
            <message>You must enter a value for bar.</message>
        </field-validator>
    </field>
</validators>

top

requiredstring

In LoginAction-validation.xml:

<validators>
    <field name="userName">
        <field-validator type="requiredstring">
            <message>You must enter an username.</message>
        </field-validator>
    </field>
</validators>

The error is shown if request parameter userName is missing or an empty string

top

regex

<validators>
    <field name="phone">
        <field-validator type="regex">
            <param name="regex">\([\d][\d][\d]\) [\d][\d][\d]-[\d][\d][\d][\d]</param>
            <message>Phone number must be in the format (XXX) XXX-XXXX</message>
        </field-validator>
    </field>
</validators>

top

int

<validators>
    <field name="foo">
        <field-validator type="int">
            <param name="min">0</param>
            <param name="max">100</param>
            <message key="foo.range">Could not find foo.range!</message>
        </field-validator>
    </field>
</validators>

top

date

<validators>
    <field name="startDate">
        <field-validator type="date">
            <param name="min">12/22/2002</param>
            <param name="max">12/25/2002</param>
            <message>The date must be between 12-22-2002 and 12-25-2002.</message>
        </field-validator>
    </field>
</validators>

top

expression

<validators>
    <validator type="expression">
        <param name="expression">foo > bar</param>
        <message>Foo must be greater than Bar. Foo = ${foo}, Bar = ${bar}.</message>
    </validator>
</validators>

The validator is not associated with a single field. You may need to place your expression within a CDATA if it contains bad xml characters.

top

fieldexpression

<validators>
     <field name="productCode">
        <field-validator type="fieldexpression">
            <param name="expression">name.length() == 5</param>
            <message>Product code must be 5 characters, it is currently '${productCode}'</message>
        </field-validator>
    </field>
</validators>

top

email

<validators>
    <field name="email">
        <field-validator type="email">
            <message>You must enter a valid email address.</message>
        </field-validator>
    </field>
</validators>

The address must be in the format xxx@yyy.com|net|gov|org|edu|info|mil|biz|tv|...

top

url

<validators>
     <field name="companyUrl">
        <field-validator type="url">
            <message>You must enter a valid URL.</message>            
        </field-validator>
    </field>
</validators>

top