Package org.zkoss.bind.validator
Class BeanValidator
java.lang.Object
org.zkoss.bind.validator.AbstractValidator
org.zkoss.bind.validator.BeanValidator
- All Implemented Interfaces:
Validator
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Object[]getValidationInfo(ValidationContext ctx, Object base, String property) Get the bean class of the base object and property to validate.protected jakarta.validation.Validatorprotected voidhandleConstraintViolation(ValidationContext ctx, Set<jakarta.validation.ConstraintViolation<?>> violations) Handle hibernate ConstraintViolation. by default, it add to invalid messages.protected voidSort the violations, make multiple violation order more predictable.protected Set<jakarta.validation.ConstraintViolation<?>>Validate the valuevoidMethods inherited from class org.zkoss.bind.validator.AbstractValidator
addInvalidMessage, addInvalidMessage, addInvalidMessage, addInvalidMessages, addInvalidMessages, addInvalidMessages
-
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 beanproperty- the property of beanvalue- the value to be validated.groups- the validation groups (since 8.0.0)- Returns:
- the ConstraintViolation set.
- Since:
- 6.0.1
-
validate
-
sort
Sort the violations, make multiple violation order more predictable. By default, sort it by the constraint name.- Parameters:
viloations-
-
getValidationInfo
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 contextbase- the base objectproperty- 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
-