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
info.magnolia.ui.field.FieldValidatorDefinition.
You can use this as a shortcut for class if the definition class is
annotated with info.magnolia.ui.field.ValidatorType. The proper value
is defined by the annotation.
required (used only in node name validation), default is EDIT
Validation mode when using nodeNameValidator. Validates names for:
Siblings of the currently selected node when editing an existing node (mode=EDIT).
Children of the currently selected node when adding a new node (mode=ADD).
pattern
required (used only in node name and regex validation), default is .+ for nodeNameValidator
Regular expression pattern to validate against when using nodeNameValidator and regexpValidator.
Do not use pattern to validate empty values. Instead, make sure that required is set to true.
factoryClass
optional
Fully qualified name of the Java class that creates the validator. The
class must implement info.magnolia.ui.field.FieldValidatorFactory.
Validator definitions specify a default factory class. This means that
unless you want to use a custom implementation, you do not need to
configure a factory class.
errorMessage
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.SvgUploadValidatorDefinitionCopy
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 SafeHtmlValidatorDefinition configuration is also used by the 5 UI rich text field.
In this case, <a href="https://foo.bar">foo</a> and <a href="mailto:info@mail.com">foo</a> are allowed because of https and mailto protocols.
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 the
createValidator 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
emailValidator
info.magnolia.ui.field.EmailValidatorDefinition
Validates an email address. Delegates to Vaadin
EmailValidator.