Edit on GitHub << back to Annotations

# VisitorFieldValidator Annotation

The validator allows you to forward validator to object properties of your action using the objects own validator files. This allows you to use the `ModelDriven` development pattern and manage your validations for your models in one place, where they belong, next to your model classes.

The `VisitorFieldValidator` can handle either simple Object properties, Collections of Objects, or Arrays. The error message for the `VisitorFieldValidator` will be appended in front of validator messages added by the validations for the Object message.

## Usage

The annotation must be applied at method level.

## Parameters

Parameter | Required | Default | Notes
--- | --- | --- | ---
message | yes |  | field error message
key | no |  | i18n key from language specific properties file.
messageParams | no |  | Additional params to be used to customize message - will be evaluated against the Value Stack
fieldName | no |  |
shortCircuit | no | false | If this validator should be used as shortCircuit.
context | no | action alias | Determines the context to use for validating the Object property. If not defined, the context of the Action validation is propogated to the Object property validation. In the case of Action validation, this context is the Action alias.
appendPrefix | no | true | Determines whether the field name of this field validator should be prepended to the field name of the visited field to determine the full field name when an error occurs. For example, suppose that the bean being validated has a "name" property. If appendPrefix is true, then the field error will be stored under the field "bean.name". If appendPrefix is false, then the field error will be stored under the field "name". If you are using the VisitorFieldValidator to validate the model from a ModelDriven Action, you should set appendPrefix to false unless you are using "model.name" to reference the properties on your model.

## Examples

     @VisitorFieldValidator(message = "Default message", key = "i18n.key", shortCircuit = true, context = "action alias", appendPrefix = true)

Follow @x