I have implemented entity-level validation using hibernate validators, and interface-level validation using ZK constraints modified dinamically in the onChange event.