Multi field

MultiFieldDefinition renders a complex field composed of one or more field sets (for example, three sets of two text fields). Magnolia provides three preconfigured multi field definitions:

These multi field definitions are part of the Magnolia 6 UI framework. Their fully qualified class names are:

  • info.magnolia.ui.field.JcrMultiValueFieldDefinition

  • info.magnolia.ui.field.JcrMultiFieldDefinition


In the Magnolia 5 UI framework, the field functionally parallel to the two JCR fields is Multivalue field. There is no corresponding 5 UI implementation for the JSON multi field.

Example definitions

JCR multi-value field

  $type: jcrMultiValueField
    $type: comboBoxField
    converterClass: info.magnolia.ui.editor.converter.JcrNodeToWorkspaceAndIdConverter
      $type: jcrDatasource
      workspace: segments
      describeByProperty: jcrName
        - mgnl:segment

JCR multi field

  label: Addresses
  i18n: true
  $type: jcrMultiField
    $type: compositeField
        label: Street name
        $type: textField
        label: City name
        i18n: true
        $type: textField
        label: ZIP code
        $type: textField

JSON multi field

  label: Station Board
  $type: jsonMultiField
    $type: jsonMultiFieldProvider
    $type: jsonCompositeField
    idPropertyName: name
        label: name
        $type: textField
        readOnly: true
        label: to
        $type: textField
        readOnly: true

Field properties

Common multi field properties

Property Description



Node containing an editor property definition item (typically, a field).

All field types are supported. See List of fields for more information.


optional, default is

  • ByMultiValueProperties for JcrMultiValueFieldDefinition

  • MultiFieldEntryResolution for JcrMultiFieldDefinition

  • MultiJcrBlockEntryResolution for MultiJcrBlockDefinition

  • JsonMultiFieldEntryResolver for JsonMultiFieldDefinition

Implementation class that defines how the child entries of a multi field should be resolved.

MultiFieldEntryResolution of JcrMultiFieldDefinition extends ByIndexedChildNodes, which resolves entry nodes regardless of node names. To enable this non-strict resolution behavior, there is a strict property that is set to false by default.

Setting strict to true is necessary in certain compatibility configurations (for example, when porting configurations that use Magnolia 5 UI multi field transformers). In problematic configurations, strict will fall back to the required value and that change will appear in the Definitions app.


optional, default is

  • MultiValuePropertyOrderHandler for JcrMultiValueFieldDefinition

  • DefaultJcrNodeOrderHandler for JcrMultiFieldDefinition

  • MultiJcrBlockOrderHandler for JcrMultiFieldDefinition

Implementation class that sorts nodes and ensures that the suffixes in index names correspond to the order in which they are stored.


optional, default is true for JcrMultiValueFieldDefinition and JcrMultiFieldDefinition

When false, the items of a multi field cannot be removed from a dialog.


optional, default is translated buttons.add key

Button label for adding an item. The value is i18n-able.


optional, default is translated buttons.delete key

Button label for removing an item. The value is i18n-able.


optional, default is false

Makes the field required. An asterisk is displayed next to the field label.


optional, default is translated validation.message.required key

Error message shown when required is set to true and the user saves an empty field. The value can be literal or a key of a message bundle.

Common complex field properties

Property Description



Name of the field definition item. Derived from the configured node name. Use alphanumeric characters without spaces.


required (unless $type is used)

Type of the field definition item. The value must be a fully qualified class name and a subtype of info.magnolia.ui.field.FieldDefinition. See Field types for possible values.


You can use this as a shortcut for class if the definition class is annotated with info.magnolia.ui.field.FieldType. The proper value is defined by the annotation.

Example class annotation
public class TextFieldDefinition extends ConfiguredFieldDefinition<String> {

See Field types for possible values.


required, default is

  • JcrPropertyProvider for JcrMultiValueFieldDefinition

  • JcrChildNodeProviderDefinition for JcrMultiFieldDefinition

  • CurrentItemProviderDefinition for StaticFieldViewDefinition

Node with a $type property that specifies the type of data binding for the subnodes in complex fields.

See Item providers for more information.

Do not use JcrMultiValueFieldDefinition with any item provider other than the default JcrPropertyProvider.



Help text displayed when the user clicks the help icon. The value can be literal or a key of a message bundle.


optional, default is false

Enables i18n authoring support, which allows editors to write foreign-language or regionally targeted content. A two-letter language identifier (en, de, fr, etc.) is displayed on controls where i18n is set to true.

When configuring the property for a multi field, make sure it is defined at the level of the field itself (not its child entries).



Field label displayed to editors. The value can be literal or a key of a message bundle.

If you do not provide the property, Magnolia will fall back to a generated i18n key.

If you do not want to have any label, set the property to an empty string such as label: "" in YAML.



Additional style information for an editor property definition item applied to the element when the form is rendered. The value can be a CSS class or a list of CSS classes separated by white spaces.

The style name will be rendered as an HTML class name, which can be used in a CSS definition. The class name is added to the field by calling the Vaadin method addStyleName.

The referenced class can be defined in: