Class BeanValidator

java.lang.Object
org.zkoss.bind.validator.AbstractValidator
org.zkoss.bind.validator.BeanValidator
All Implemented Interfaces:
Validator

public class BeanValidator extends AbstractValidator
A JSR 303 compatible validator for a property-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 a single property of a bean and sets the invalid message by AbstractValidator.addInvalidMessage(ValidationContext, String).

Since 8.5, you can assign a self-defined message key by appending a key parameter.

To use this class, you have to add @validator('beanValidator') or @validator('org.zkoss.bind.validator.BeanValidator') to the property-binding

Example


 <grid width="600px">
   <textbox id="tb" value="@bind(vm.person.firstName) @validator('beanValidator')"/>
   <label value="@load(vmsgs[tb])"/> 
 </grid>
 

 <grid width="600px">
   <textbox value="@bind(vm.person.firstName) @validator('beanValidator', key='fn')"/>
   <label value="@load(vmsgs['fn'])"/>
 </grid>
 
Note

It doesn't supports to validate a property of a form which properties are load from a bean, if you want to validate the form property of the bean, you could use org.zkoss.zkmax.bind.BeanValodator

Since:
6.0.0
Author:
dennis
  • Constructor Details

    • BeanValidator

      public BeanValidator()
  • Method Details

    • getValidator

      protected jakarta.validation.Validator getValidator()
    • validate

      protected Set<jakarta.validation.ConstraintViolation<?>> validate(Class clz, String property, Object value, Class<?>[] groups)
      Validate the value
      Parameters:
      clz - the class of bean
      property - the property of bean
      value - the value to be validated.
      groups - the validation groups (since 8.0.0)
      Returns:
      the ConstraintViolation set.
      Since:
      6.0.1
    • validate

      public void validate(ValidationContext ctx)
    • sort

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

      protected Object[] getValidationInfo(ValidationContext ctx, Object base, String property)
      Get the bean class of the base object and property to validate.
      By default, it returns the class of base object directly.
      Parameters:
      ctx - the validation context
      base - the base object
      property - the property to validate
      Returns:
      a object array, the first item is the bean class of base object, 2nd item is the tuned property regards to the bean class
      Since:
      6.0.1
    • handleConstraintViolation

      protected void handleConstraintViolation(ValidationContext ctx, Set<jakarta.validation.ConstraintViolation<?>> violations)
      Handle hibernate ConstraintViolation. by default, it add to invalid messages.
      Parameters:
      ctx -
      violations -
      Since:
      6.0.1