Package org.zkoss.zkmax.bind
Class FormBeanValidator
- java.lang.Object
-
- org.zkoss.bind.validator.AbstractValidator
-
- org.zkoss.zkmax.bind.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 byAbstractValidator.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, whereprefix
is an argument of the message name(prefix+property
) for a property. Because of the message name is shared between sameValidationMessages
, that is sameBinder
, 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 Summary
Constructors Constructor Description FormBeanValidator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Class
getBeanClass(ValidationContext ctx, java.lang.Object base)
Get the bean class of the base object.protected javax.validation.Validator
getValidator()
protected void
handleConstraintViolation(ValidationContext ctx, java.lang.String key, java.util.Set<javax.validation.ConstraintViolation<?>> violations)
Handle hibernate ConstraintViolation.protected void
sort(java.util.List<javax.validation.ConstraintViolation<?>> viloations)
Sort the violations, make multiple violation order more predictable.protected java.util.Set<javax.validation.ConstraintViolation<?>>
validate(java.lang.Class clz, java.lang.String property, java.lang.Object value)
Validate the valuevoid
validate(ValidationContext ctx)
-
Methods inherited from class org.zkoss.bind.validator.AbstractValidator
addInvalidMessage, addInvalidMessage, addInvalidMessage, addInvalidMessages, addInvalidMessages, addInvalidMessages
-
-
-
-
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 beanproperty
- the property of beanvalue
- the value to be validated.- Returns:
- the ConstraintViolation set.
-
validate
public void validate(ValidationContext ctx)
-
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 messageviolations
-- 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 contextbase
- the base object- Returns:
- the bean class of base object, never null
-
-