com.opensymphony.xwork2.validator.annotations

## Annotation Type ConditionalVisitorFieldValidator

-     @Target(value=METHOD)
       @Retention(value=RUNTIME)
      public @interface ConditionalVisitorFieldValidator

  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 ConditionalVisitorFieldValidator can handle either simple Object properties, Collections of Objects, or Arrays. The error message for the ConditionalVisitorFieldValidator will be appended in front of validator messages added by the validations for the Object message.

  Annotation usage:

  The annotation must be applied at method level.

  Annotation parameters:

  Parameter | Required | Default | Notes
  --- | --- | --- | ---
  expression | yes |  | Boolean conditional expression
  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 propagated 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.

  Example code:

       @ConditionalVisitorFieldValidator(expression="app.appid > 100",  message = "Default message", key = "i18n.key", shortCircuit = true, context = "action alias", appendPrefix = true)

  Author:
    Matt Raible

- - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `String` | `expression`

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `boolean` | `appendPrefix` 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.
    `String` | `context` Determines the context to use for validating the Object property.
    `String` | `fieldName`
    `String` | `key`
    `String` | `message`
    `String[]` | `messageParams`
    `boolean` | `shortCircuit` If this is activated, the validator will be used as short-circuit.

- - ### Element Detail

    - #### expression

          public abstract String expression

      Returns:
        The conditional expression.

  - - #### context

          public abstract String context

      Determines the context to use for validating the Object property. If not defined, the context of the Action validator is propagated to the Object property validator. In the case of Action validator, this context is the Action alias.
      Returns:
        the context
      Default:
        ""

  - - #### appendPrefix

          public abstract boolean appendPrefix

      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 ConditionalVisitorFieldValidator 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.
      Returns:
        if append prefix
      Default:
        true

  - - #### message

          public abstract String message

      Returns:
        The default error message for this validator. NOTE: It is required to set a message, if you are not using the message key for 18n lookup!
      Default:
        ""

  - - #### key

          public abstract String key

      Returns:
        The message key to lookup for i18n.
      Default:
        ""

  - - #### messageParams

          public abstract String[] messageParams

      Returns:
        Additional params to be used to customize message - will be evaluated against the Value Stack
      Default:
        {}

  - - #### fieldName

          public abstract String fieldName

      Returns:
        The optional fieldName for SIMPLE validator types.
      Default:
        ""

  - - #### shortCircuit

          public abstract boolean shortCircuit

      If this is activated, the validator will be used as short-circuit. Adds the short-circuit='true' attribute value if `true`.
      Returns:
        true if validator will be used as short-circuit. Default is false.
      Default:
        false

Copyright © 2000–2026 Apache Software Foundation. All rights reserved.