Class FormBeanValidator

  • All Implemented Interfaces:
    Validator

    public class FormBeanValidator
    extends AbstractValidator
    A JSR 303 compatible validator for a form-binding.

    Notice : Before use this validator, you have to configure your environment (depends on the implementation you chosen). Here is a article Integrate ZK with JSR 303: Bean Validation talks about how to set up JSR 303 in ZK with Hibernate implementation.

    It validates all the saving properties of a bean and sets the invalid message by AbstractValidator.addInvalidMessage(ValidationContext, String, String).

    To use this class, you have to add @validator('formBeanValidator',prefix='p_') or @validator('org.zkoss.zkoss.bind.FormBeanValidator',prefix='p_') to the form-binding, where prefix is an argument of the message name(prefix+property) for a property. Because of the message name is shared between same ValidationMessages, that is same Binder, you have to provide a unique prefix for every FormBeanValidator in same binder.

    Example

    
     <grid width="600px" form="@id('fx') @load(vm.user) @save(vm.user,after='save') @validator('formBeanValidator',prefix='p_')">
       <textbox value="@bind(fx.firstName)"/>
       <label value="@load(vmsgs['p_firstName'])"/> 
    </grid>
     

    Since:
    6.0.1
    Author:
    dennis
    • Constructor Detail

      • FormBeanValidator

        public FormBeanValidator()
    • Method Detail

      • getValidator

        protected javax.validation.Validator getValidator()
      • validate

        protected java.util.Set<javax.validation.ConstraintViolation<?>> validate​(java.lang.Class clz,
                                                                                  java.lang.String property,
                                                                                  java.lang.Object value)
        Validate the value
        Parameters:
        clz - the class of bean
        property - the property of bean
        value - the value to be validated.
        Returns:
        the ConstraintViolation set.
      • sort

        protected void sort​(java.util.List<javax.validation.ConstraintViolation<?>> viloations)
        Sort the violations, make multiple violation order more predictable. By default, sort it by the constraint name.
        Parameters:
        viloations -
      • handleConstraintViolation

        protected void handleConstraintViolation​(ValidationContext ctx,
                                                 java.lang.String key,
                                                 java.util.Set<javax.validation.ConstraintViolation<?>> violations)
        Handle hibernate ConstraintViolation. By default, it adds to invalid messages.
        Parameters:
        ctx -
        key - the key of message
        violations -
        Since:
        6.0.1
      • getBeanClass

        protected java.lang.Class getBeanClass​(ValidationContext ctx,
                                               java.lang.Object base)
        Get the bean class of the base object.
        Parameters:
        ctx - the validation context
        base - the base object
        Returns:
        the bean class of base object, never null