Uploaded image for project: 'ZK'
  1. ZK
  2. ZK-1788

Improve Error message of CE Bean Validator

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Normal Normal
    • None
    • 6.5.2
    • Databind 2
    • None

      Use CE BeanValidator in a form binding will show the following error:
      SEVERE: >>java.lang.IllegalArgumentException: Invalid property path. There is no property lastName in entity org.zkoss.bind.SimpleForm
      >> at org.hibernate.validator.engine.ValidatorImpl.collectMetaConstraintsForPath(ValidatorImpl.java:684)
      >> at org.hibernate.validator.engine.ValidatorImpl.validateValue(ValidatorImpl.java:578)
      >> at org.hibernate.validator.engine.ValidatorImpl.validateValue(ValidatorImpl.java:146)
      >> at org.zkoss.bind.validator.BeanValidator.validate(BeanValidator.java:67)
      >> at org.zkoss.bind.validator.BeanValidator.validate(BeanValidator.java:138)
      >> at org.zkoss.bind.impl.SavePropertyBindingImpl.validate(SavePropertyBindingImpl.java:233)
      >> at org.zkoss.bind.impl.PropertyBindingHandler.doValidateSaveEvent(PropertyBindingHandler.java:233)

      <zk>
      	<zscript><![CDATA[
      	
      import org.zkoss.bind.validator.BeanValidator;
      //import org.zkoss.zkmax.bind.BeanValidator;
      
      	public class MyVM {
      		private User user;
      
      		public MyVM () {
      			user = new User();
      		}
      		public User getUser() {
      			return user;
      		}
      		
      		public BeanValidator getBeanValidator(){
      			return new BeanValidator();
      		}
      
      	}
      ]]></zscript>
      
      
      	<window id="win" apply="org.zkoss.bind.BindComposer"
      		viewModel="@id('vm') @init('MyVM')"
      		validationMessages="@id('vmsgs')">
      		
      		<textbox id="tb"
      			value="@bind(vm.user.lastName) @validator(vm.beanValidator)" />
      		<label value="@load(vmsgs[tb])" />
      		
      		<div form="@id('fx') @load(vm.user)">
      			<textbox id="tb2"
      				value="@bind(fx.lastName) @validator(vm.beanValidator)" />
      			<label value="@load(vmsgs[tb2])" />
      		</div>
      		
      	</window>
      </zk>
      
      public static class User{
          private String _lastName = "Chen";
            
          @NotEmpty(message = "Last name can not be null")
          public String getLastName() {
              return _lastName;
          }
            
          public void setLastName(String name) {
              _lastName = name;
          }
      }
      

            Unassigned Unassigned
            jimmyshiau jimmyshiau
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: