Class FormBeanValidator

  • All Implemented Interfaces:
    org.zkoss.bind.Validator

    public class FormBeanValidator
    extends org.zkoss.bind.validator.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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.lang.Class getBeanClass​(org.zkoss.bind.ValidationContext ctx, java.lang.Object base)
      Get the bean class of the base object.
      protected jakarta.validation.Validator getValidator()  
      protected void handleConstraintViolation​(org.zkoss.bind.ValidationContext ctx, java.lang.String key, java.util.Set<jakarta.validation.ConstraintViolation<?>> violations)
      Handle hibernate ConstraintViolation.
      protected void sort​(java.util.List<jakarta.validation.ConstraintViolation<?>> viloations)
      Sort the violations, make multiple violation order more predictable.
      protected java.util.Set<jakarta.validation.ConstraintViolation<?>> validate​(java.lang.Class clz, java.lang.String property, java.lang.Object value)
      Validate the value
      void validate​(org.zkoss.bind.ValidationContext ctx)  
      • Methods inherited from class org.zkoss.bind.validator.AbstractValidator

        addInvalidMessage, addInvalidMessage, addInvalidMessage, addInvalidMessages, addInvalidMessages, addInvalidMessages
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FormBeanValidator

        public FormBeanValidator()
    • Method Detail

      • getValidator

        protected jakarta.validation.Validator getValidator()
      • validate

        protected java.util.Set<jakarta.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.
      • validate

        public void validate​(org.zkoss.bind.ValidationContext ctx)
      • sort

        protected void sort​(java.util.List<jakarta.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​(org.zkoss.bind.ValidationContext ctx,
                                                 java.lang.String key,
                                                 java.util.Set<jakarta.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​(org.zkoss.bind.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