Struts 2 > 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.
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>
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
<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>
<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>
<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>
<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.
<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>
<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|...
<validators> <field name="companyUrl"> <field-validator type="url"> <message>You must enter a valid URL.</message> </field-validator> </field> </validators>