Field validators
Validators ensure that field input is entered in the correct format and
length. For example, you can validate that an email address adheres to a
syntax such as first.last@company.com
. You can add multiple validators
to a field. The validators are executed in a chain, one after the other.
This field validator definition is part of the Magnolia 6 UI
framework. The fully qualified class name is
If you work with the Magnolia 5 UI framework, see Field validators for Magnolia 5 UI instead. |
Example definition
email:
$type: textField
label: Email
required: true
validators:
email:
$type: emailValidator
errorMessage: Enter a valid email address
You can preview this example in the |
Validator properties
Property | Description | ||
---|---|---|---|
|
required List of field validator definition items. Any value must be a subtype of
|
||
|
required Arbitrary validator name. Use a name that describes the validator type. |
||
|
required (unless Validator definition class. Use the fully qualified class name. See Validator types for possible values. You can also create your own validator definition class. |
||
|
You can use this as a shortcut for Example class annotation
To use the |
||
|
required (used only in node name validation), default is Validation mode when using
|
||
|
required (used only in node name and regex validation), default is Regular expression pattern to validate against when using
|
||
|
optional Fully qualified name of the Java class that creates the validator. The
class must implement |
||
|
optional Error message displayed on invalid input. The value can be literal or retrieved from the message bundle with a key. Use alphanumeric characters in literal values. |
Global validators
Validators can be defined globally for certain types of fields.
You can view and edit the default configuration file config.yaml
in the Resource Files app under the ui-framework-core
node.
In the YAML below, the default field validators for UploadFieldDefinition
would also apply to its extended class DamUploadFieldDefinition
(and any other extended classes).
defaultFieldValidators:
info.magnolia.ui.field.UploadFieldDefinition: # applies to its extended classes as well (e.g. DamUploadFieldDefinition)
svgValidator:
class: info.magnolia.ui.field.SvgUploadValidatorDefinition
The default field validator SafeHtmlValidatorDefinition
is also configured for RichTextFieldDefinition
and its extended classes. This validator allows html tags
, attributes
and protocols
in the value of rich text field.
The global However, this validator cannot be reconfigured per field in the Magnolia 5 UI framework. |
defaultFieldValidators:
info.magnolia.ui.field.RichTextFieldDefinition:
safeHtml: (1)
class: info.magnolia.ui.field.SafeHtmlValidatorDefinition (1)
allowedTags:
a: a
div: div
...
allowedAttributes:
a:
tag: a
attributes: [ href ]
...
allowedProtocols:
a:
tag: a
attribute: href
protocols: [ ftp, http, https, mailto ]
...
1 | The safeHtml section contains the SafeHtmlValidatorDefinition class which allows you to specify the allowed tags, attributes, and protocols. |
Property | Description | ||||
---|---|---|---|---|---|
|
List of html |
||||
|
List of
Example
|
||||
|
List of
Example
|
||||
|
List of
Example
|
Global validators do not apply to apps using the Magnolia 5 UI framework. An exception is the SafeHtmlValidator , which loads this configuration explicitly.
|
Custom validators
To write your own validator definition class:
-
Create a validator class that performs the actual validation.
-
Create a validator factory class that extends
info.magnolia.ui.field.AbstractFieldValidatorFactory
. Implement thecreateValidator
method. -
Create a validator definition class that extends
info.magnolia.ui.field.ConfiguredFieldValidatorDefinition
. In the definition class, set the factory class.
Validator types
$type | class/description |
---|---|
|
Validates an email address. Delegates to Vaadin
|
|
Validates JCR node names as defined in the |
|
Validates text input as defined in the |
|
Validates SVG file uploads against malicious content. |
|
Validates text against malicious HTML. |